我的UIAlert有很多延迟,每当它加载时我必须等待才能点击然后再次完全消失。我查看过建议使用dispatch_async(dispatch_get_main_queue(), {})
的其他答案。我试过用这个但无济于事。在我正在制作的场景工具包游戏的渲染循环期间弹出警报(场景只是一个立方体,当我暂停场景时它仍然被延迟)。无论如何都不应该在渲染线程中进行渲染。我查看了时间配置文件日志,看看有什么东西挡住主线程,但我没有看到任何引起我注意的东西(我对这些工具很新)。
以下是我创建警报的代码:
func share(){
print("share funciton")
let alert = UIAlertController(title: "Share", message: "Where do you want to share?", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Twitter", style: .Default, handler: {(alert: UIAlertAction!) in
print("twitter")
self.showTwitter()
}))
self.presentViewController(alert, animated: false, completion: nil)
}
private func showTwitter() {
if SLComposeViewController.isAvailableForServiceType(SLServiceTypeTwitter) {
let tweetShare:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
self.presentViewController(tweetShare, animated: true, completion: nil)
} else {
let alert = UIAlertController(title: "Accounts", message: "Please login to a Twitter account to tweet.", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
}
}
然后我在使用dispatch_asych的渲染循环中调用share()。我已经在这个bug工作了三天,但不知道是什么导致延迟。
答案 0 :(得分:1)
尝试关闭慢动画。打开模拟器 - >调试 - >慢动画