UIAlertController 延迟显示
UIAlertController Showing With Delay
我的 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()。我已经在这个错误上工作了三天,但不知道是什么导致了延迟。
尝试关闭慢速动画。打开模拟器 -> 调试 -> 慢动画
我的 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()。我已经在这个错误上工作了三天,但不知道是什么导致了延迟。
尝试关闭慢速动画。打开模拟器 -> 调试 -> 慢动画