【问题标题】:Snapshotted view dont contain image on iOS 10快照视图不包含 iOS 10 上的图像
【发布时间】:2019-07-31 10:21:33
【问题描述】:

我正在处理UIView 的快照。 例如,当我为 iOS 12 执行此操作时,一切正常,并且输出包含快照(至少它在屏幕上可见)。但是当我为 iOS 10 执行此操作时,快照是空的。快照的大小与原始视图相似,但它是透明的。

代码:

override func viewDidLoad() {
    super.viewDidLoad()

    let v = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
    v.backgroundColor = .red

    view.addSubview(v)

    if let shot = v.snapshotView(afterScreenUpdates: true) {
        shot.frame.origin.y = 110
        view.addSubview(shot)
    }
}

【问题讨论】:

    标签: swift uiview ios10


    【解决方案1】:

    我发现在 iOS 10 上,这个函数以某种方式调用了后台队列。这就是为什么我们必须这样做:

    DispatchQueue.main.async {
        if let shot = v.snapshotView(afterScreenUpdates: true) {
            shot.frame.origin.y = 110
            view.addSubview(shot)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 2014-06-28
      相关资源
      最近更新 更多