我对现代编程比较陌生(我最近的一次严肃经历就是我的旧Amiga上的AMOS!)但是我已经尽力学习目标C以开发应用程序(仅适用于iOS)此时此刻)。我有一个(希望非常简单)的问题,我已经尽力研究,没有任何快乐。
我已经完成了大部分相对基本的应用程序。从我家的ViewController,我有四个选项,所有选项都有颜色编码按钮,通过segue链接到内容ViewControllers。
作为一个很好的蓬勃发展,最重要的是,我想让整个屏幕按下按钮的颜色短暂闪烁(这个应用程序针对非程序员,一些主题不仅会使事情看起来不错,但也有希望帮助导向/直觉。
到目前为止,我已经尝试过:
添加一个新的ViewController,其屏幕空白除了主题颜色和NSTimer控制的自动定制segue。 //这是次优的,就好像用户想要导航回主页一样,他们必须跳过两页而不是一页,如果它们有点慢,那么它们可能会陷入循环中。
使用NSTimer和self.window.backgroundColor / setBackgroundColor。 //这两个选项最终导致我的应用程序崩溃 - 可能是由于编码无能!
有什么想法吗?例如,如果我的用户单击了“紧急指南”UIButton,那么在将应用程序无缝转换到相关页面之前,我会让屏幕闪烁红色(此部分选择的主题颜色),这是一个几乎无法察觉但潜意识太棒的时期。< / p>
对不起,如果这是一个小小的问题。我渴望听到任何答案,甚至适当地指导强硬的爱情。
答案 0 :(得分:0)
答案 1 :(得分:0)
我建议采用不同的方式。不要使用额外的viewController,而是在按下按钮时添加覆盖整个屏幕的彩色UIView。动画淡出淡出,一旦淡出就完全删除该视图并执行推送到下一个viewController。
这可能是最简单的方法,只需要这么多代码:
- (IBAction)demoButtonPressed:(UIButton *)sender {
UIView *flashView = [[UIView alloc] initWithFrame:self.view.bounds];
flashView.backgroundColor = [UIColor redColor];
[self.view addSubview:flashView];
[UIView animateWithDuration:0.3 delay:0.1 options:0 animations:^{
flashView.alpha = 0.0f;
} completion:^(BOOL finished) {
[flashView removeFromSuperview];
[self performSegueWithIdentifier:@"pushDemo1" sender:sender];
}];
}
使用duration
和delay
,直到您满意为止。