是否有任何方法可以淡化条形按钮项,因为没有要设置的.alpha
属性。我有兴趣淡出一个按钮并淡出另一个按钮以取代导航栏上的位置。有没有办法做到这一点?
编辑:我正试图淡化右上方Bar Button Item
我理解褪色通常是通过我之前说过的.alpha
完成的。
我的问题是Bar Button Item
没有alpha属性。
如下所示:
与存在.alpha
属性的普通按钮相反:
如何淡化Bar Button Item
?
答案 0 :(得分:0)
易。您必须为它们创建一个插座,然后创建if语句或您想要启动淡入/淡出动画的任何方法:
- (void) animateButton {
button1.alpha = 0;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:.5];
button1.alpha = 1;
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView commitAnimations];
}
- (void) animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.5];
button1.alpha = 0;
[UIView commitAnimations];
}
<强>迅速强>
viewDidLoad {
self.button1.alpha = 1
self.button2.alpha = 0
}
当您调用动画代码时:
UIView.animateWithDuration(1.0, animations: {
self.button1.alpha = 0
})
//基于UIControlState更改按钮:您也可以在故事板中执行此操作,方法是将一个条形按钮项拖动到视图控制器,然后按住Ctrl键并拖动到.h文件以创建一个插座,然后基于此提交动画或代码你想要什么。
UIImage *backButtonImage = [[UIImage imageNamed:@"button_back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 6)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];