UI状态栏淡入淡出时间iOS
Posted
技术标签:
【中文标题】UI状态栏淡入淡出时间iOS【英文标题】:UI Status Bar Fade in-out Time iOS 【发布时间】:2012-04-15 15:53:21 【问题描述】:我有一个应用程序,您可以在其中点击 UIImageView,然后按钮淡出并重新出现。状态栏的作用相同,只是它只是快速进入。有没有办法让它的淡入时间与我的按钮时间相匹配?这是我的 .m 文件,其中包含按钮和状态栏的代码。
.m
- (void)viewDidLoad
////Loads UIImageView from URL
todaysWallpaper.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.inkdryercreative.com/daily/archive/mondays/images/062-mondays-960x640-A.jpg"]]];
_buttonsVisible = false;
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
[todaysWallpaper addGestureRecognizer:tapGesture];
- (void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
- (void)imageTapped:(UIGestureRecognizer *)sender
float targetA = 0;
if(_buttonsVisible == NO)
targetA =1.0;
else
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(imageTapped:) object:nil];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleBlackTranslucent];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
[UIView beginAnimations:@"MoveAndStrech" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationBeginsFromCurrentState:YES];
homeButton.alpha = targetA;
infoButton.alpha = targetA;
saveButton.alpha = targetA;
tweetButton.alpha = targetA;
[UIView commitAnimations];
_buttonsVisible = !_buttonsVisible;
if(_buttonsVisible)
[self performSelector:@selector(imageTapped:) withObject:nil afterDelay:100.0];
[[UIApplication sharedApplication] setStatusBarHidden:NO ];
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleBlackTranslucent];
任何帮助或指导将不胜感激。我的客户希望在星期二之前完成这项工作,或者找其他人来完成这项工作。我已经把我的生命投入到这个应用程序中,所以如果你能帮助分享知识,请。谢谢
【问题讨论】:
我认为你不能让它“褪色”。甚至照片应用也没有 THAT 【参考方案1】:您可以将其包装在动画块中。只需使用setStatusBarHidden:
方法而不是setStatusBarHidden:withAnimation:
[UIView beginAnimations:@"foo" context:nil];
[UIView setAnimationDuration:1.0];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[UIView commitAnimations];
【讨论】:
+1,不知道你可以把它放在动画块中。是否有可以制作动画的列表?【参考方案2】:尝试使用以下代码设置状态栏:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];【讨论】:
【参考方案3】:你可以试试这个,它是所有 ios 设备的单行代码:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];希望对你有帮助..
【讨论】:
@Gabriel 你也可以试试 Slide 之类的其他动画。【参考方案4】:您可以做的是创建自己的 NavigationBar(不要使用 UINavigationController 的 UINavigationBar) - 然后您可以自定义它并轻松为其分配动画属性,例如 alpha。
【讨论】:
以上是关于UI状态栏淡入淡出时间iOS的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用淡入淡出将 ui 元素从一个位置移动到另一个位置?
带有操作栏图标单击的 NavigationUI 导致片段淡入淡出
在 css jQuery 中应用淡入淡出到粘性导航的过渡淡入淡出
Cocoa - UIControlStateNormal 和 UIControlStateDisabled 背景图像之间的 UIButton 淡入淡出过渡