我注意到在解雇UIAlertView
后,应用程序无法识别任何触摸的时间很短。
所以,我做了一个非常简单的项目,它只包含2个UIButton
个(一个用于将label
更改为一个随机数,另一个用于显示UIAlertView
)。
在设备(iPhone4)和模拟器(iOS 6和iOS 7)上进行了测试。 结果是这种滞后只发生在iOS 7上。在iOS 6.x上,它运行得很好。
延迟时间取决于应用的大小。在我上面描述的测试项目中,延迟大约是0.3秒。但是,在我的另一个项目中,它可能长达1秒钟。
我还使用了GCD
,请按照以下步骤操作:
- (void) startSomeLongOperation {
//display alertView
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_NORMAL, 0), ^{
// …do something that takes long…
dispatch_async(dispatch_get_main_queue(), ^{
//dismiss alertView
});
});
}
我试过的另一个:
dispatch_async(dispatch_get_main_queue(), ^{
//show and dismiss alertView
});
它们都不起作用。
所以,我得出结论,这种延迟是由iOS 7引起的。
以前有没有人经历过这个?