覆盖系统默认提供的hide方法,在hide方法中添加动画效果即可。
-(void)setHidden:(BOOL)hidden{
CATransition *animation = [CATransition animation];
animation.timingFunction = UIViewAnimationCurveEaseInOut;
animation.type = kCATransitionFade;
animation.duration = 0.4;
[self.layer addAnimation:animation forKey:nil];
// self.hidden = hidden;
[super setHidden:hidden];
}