小小原创,转载请注明出处:http://iphone.xiaoxiaostudio.net 如果你觉得为某个UIView 加载一个全新的View在这个UIView上面时,想要隐藏时setHidden显得太突兀了,我们可以给它增加一些动画,iOS上默认提供了一些动画,效果已经非常好了,而且使用超简单的。 我的作法是自定义一个新的UIView继承自UIView,重载它的setHidden方法,在这里面增加淡入淡出的动画,这样你需要时,就可以使用 这个view的setHidden方法来改变了。 //.h文件
#import <UIKit/UIKit.h>
@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
是不是很简单呢。