我有一个视图控制器....当用户按下按钮时,我想要一个黑色的屏幕在顶部淡入,一个uiactivityindicator出现在褪色的屏幕上。
如何实现这种动画效果?
-(IBAction) loginToApp:(id)sender{
//fade in view
}
答案 0 :(得分:2)
在视图顶部添加另一个视图,颜色为纯黑色。您可以在IB中或以编程方式执行此操作,只需确保它具有更高的z顺序(位于顶部)。使其alpha = 0.然后:
-(IBAction) loginToApp:(id)sender{
[UIView animateWithDuration:1.5 animations:^{ myview.alpha = 1.0; }]
}
...显然你需要连接到该视图的插座或变量myview。 1.5 =秒。根据您的需求进行更改。
答案 1 :(得分:0)
当然可以。您可以根据需要创建叠加视图,但这将起作用(假设您在某处创建了适当的实例变量)。我的代码在我的视图控制器中,因此[self view]
返回我想要遮蔽的视图。
shadeView = [[UIView alloc] initWithFrame:[[self view] bounds]];
shadeView.backgroundColor = [UIColor blackColor];
shadeView.alpha = 0.0f;
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorStyleWhiteLarge];
spinner.center = CGPointMake(CGRectGetMidX([shadeView bounds]),
CGRectGetMidY([shadeView bounds]));
[shadeView addSubview:spinner];
[[self view] addSubview:shadeView];
提出:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
[spinner startAnimating];
shadeView.alpha = 0.7f;
[UIView commitAnimations];
隐藏:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[spinner stopAnimating];
shadeView.alpha = 0.0f;
[UIView commitAnimations];