小小原创,转载请注明出处: 如果你觉得为某个UIView 加载一个全新的View在这个UIView上面时,想要隐藏时setHidden显得太突兀了,我们可以给它增加一些动画,iOS上默认提供了一些动画,效果已经非常好了,而且使用超简单的。 我的作法是自定义一个新的UIView继承自UIView,重载它的setHidden方法,在这里面增加淡入淡出的动画,这样你需要时,就可以使用 这个view的setHidden方法来改变了。 //.h文件
#import @interface MyView : UIView@end
.m文件
@implementation MyView/* 重写hidden方法 */-(void)setHidden:(BOOL)hidden{ if (hidden) { //隐藏时 self.alpha= 1.0f; [UIView beginAnimations:@"fadeOut" context:nil]; [UIView setAnimationDuration:0.7]; [UIView setAnimationDelegate:self];//设置委托 [UIView setAnimationDidStopSelector:@selector(animationStop)];//当动画结束时,我们还需要再将其隐藏 self.alpha = 0.0f; [UIView commitAnimations]; } else { self.alpha= 0.0f; [super setHidden:hidden]; [UIView beginAnimations:@"fadeIn" context:nil]; [UIView setAnimationDuration:0.7]; self.alpha= 1.0f; [UIView commitAnimations]; }}-(void)animationStop{ [super setHidden:!self.hidden];}@end
是不是很简单呢。