显示UIAlertView时的动画卡顿问题

3
我在显示UIAlertView时遇到了奇怪的动画延迟。警告视图上的按钮和标签在背景之前明显出现。在我显示警报的应用程序的任何地方都会发生这种情况。

alert view lag

例如,上面的示例中的警报是从清除按钮的操作方法中显示的。
-(IBAction)clearButtonTapped:(id)sender {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Clear Outbox" message:@"This will delete everything from your Outbox." delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK",nil];   
    [alert show];
}

有人知道发生这种情况的原因或者我能做什么来阻止它吗?


1
你的UIViewController上有任何叠加视图吗?或者其他加载类,比如MBProgressHUD? - Ricky
没有,没有这样的东西。 - Matt Colliss
嗯...那就奇怪了。你能在Github上上传一个示例项目吗?问题可能不在UIAlertView上。 - Ricky
你是否正在运行一些复杂的后台进程?我注意到,如果执行“硬核”后台任务(实际上是多个这样的任务) - 它会导致主线程卡顿。 - Guntis Treulands
嘿,但这是模拟器,您在真实设备上是否也有同样的问题? - Guntis Treulands
这是在真实设备上(我正在使用http://www.airsquirrels.com/reflector/录制屏幕) - Matt Colliss
2个回答

1
在info.plist中将"使用抗锯齿渲染"设置为NO。

不确定为什么它被设置为“否”,因为它默认为“否”。Liam,你有什么想法吗? - Matt Colliss
1
我猜测在你的项目中设置它的开发人员并不真正知道它的作用? - liamnichols

0

试一下

[yourAlert performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];

show方法已经在主线程上被调用了。无论如何我还是尝试了上述方法以确保,但并没有什么区别。 - Matt Colliss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接