Визуализация UIView в изображение в фоновом потоке - PullRequest
0 голосов
/ 02 декабря 2018

Я ищу способы рендеринга своих пользовательских видов в изображения в фоновом потоке, и я не уверен, возможно ли это на самом деле, поскольку UIKit не является поточно-ориентированным.Но мне интересно, можно ли манипулировать UIView layer в фоновом потоке, пока представление еще нигде не размещено.Как это:

let view = UIView()
    let label = UILabel()
    label.text = "Hello"
    label.sizeToFit()

    view.addSubview(label)
    view.frame.size = label.bounds.size
    view.setNeedsDisplay()
    RunLoop.main.run(mode: .default, before: Date())

    let size = view.bounds.size
    let layer = view.layer

    DispatchQueue.global().async {
        UIGraphicsBeginImageContext(size)
        layer.render(in: UIGraphicsGetCurrentContext()!)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        DispatchQueue.main.async {
            let imageView = UIImageView(image: image)
            imageView.backgroundColor = .lightGray
            imageView.bounds.size = view.bounds.size // retain `view`
            imageView.center = CGPoint(x: 200, y: 300)
            self.view.addSubview(imageView)
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...