我正在开发一个应用程序,与照片应用程序类似,需要利用整个屏幕来显示图像。现在,我正在研究当用户点击屏幕时状态、导航和选项卡栏消失并重新出现的行为。我让它根据需要工作,唯一的问题是消失动画发生之前的暂停使用户无法按下导航栏和选项卡栏上的按钮。这是我的代码:
[UIView animateWithDuration:.25 delay:5.5 options:UIViewAnimationOptionAllowUserInteraction animations:^
{
self.navigationController.navigationBar.alpha = 0;
self.tabBarController.tabBar.alpha = 0;
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
completion:nil];
因此,显而易见的解决方案是创建一个在休眠 5.5 秒的动画之前运行的线程。有谁知道如何使用中央调度来实现这一点,或者最好的方法是什么?或者有人有更清洁的解决方案吗?我读到在GCD中使用sleep不好,而且基本上我没有太多的线程编程经验,有点困惑。
最佳答案
当然。使用dispatch_after
:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 5.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void){
[UIView animateWithDuration:0.25 animations:^{
self.navigationController.navigationBar.alpha = 0;
self.tabBarController.tabBar.alpha = 0;
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}];
});
关于iphone - 实现照片应用程序的全屏栏消失行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8641589/