^(([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!))
}
}
}
我对这个简单的代码有同样的问题。