当从webview播放全屏视频时,“此应用程序正在从后台线程修改自动布局引擎”

时间:2015-12-30 23:08:29

标签: ios swift uiwebview autolayout

^(([Aa][EeLlKkSsZzRr])|([Cc][AaOoTt])|([Dd][EeCc])|([Ff][MmLl])|([Gg][AaUu])|([Hh][Ii])|([Ii][DdLlNnAa])|([Kk][SsYy])|([Ll][Aa])|([Mm][EeHhDdAaIiNnSsOoTt])|([Nn][EeVvHhJjMmYyCcDd])|([Mm][Pp])|([Oo][HhKkRr])|([Pp][WwAaRr])|([Rr][Ii])|([Ss][CcDd])|([Tt][NnXx])|([Uu][Tt])|([Vv][TtIiAa])|([Ww][AaVvIiYy]))$ 中有一个webview,其中包含嵌入式 YouTube视频。每当我点击YouTube视频时,它都会全屏显示。这是我想要它做的,但控制台正在吐出以下错误:

collectionview cell

之前我曾多次处理过这个错误,通常我只需用相应的代码包装:

This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes.  This will cause an exception in a future release.

但是,此问题似乎是由dispatch_async(dispatch_get_main_queue()){ *code* } 本身生成的操作触发的。我不知道如何解决这个问题。我有什么办法拦截webview重新路由它到webview action

编辑1/3 - 我建立了一个非常基本的项目来复制这个问题。它由一个具有一种细胞类型的uicollectionviewcontroller组成。单元格代码如下:

main thread

我在cellForItemAtIndexPath中的代码如下:

import UIKit

class videoCellCollectionViewCell: UICollectionViewCell {
    @IBOutlet weak var videoView: UIWebView!
    var video : String? {
        didSet {
            let components = video!.componentsSeparatedByString("=")
            let videoID = components[1]
            let playerLink = "https://www.youtube.com/embed/" + videoID
            let playerURL = NSURL(string: playerLink)
            print("loading...")
            self.videoView.loadRequest(NSURLRequest(URL: playerURL!))
        }
    }
}

我对这个简单的代码有同样的问题。

0 个答案:

没有答案