一种Material Design风格的过渡效果,灵感来自Dmytro Prudnikov的这个动画。
要过渡的展示视图控制器中的小视图。
要过渡到的展示视图控制器中的大视图。
在过渡结束时淡入的展示视图控制器中的视图。(可选)
在展示视图控制器中,初始化过渡代理属性
self.transitioningDelegate = [MZMaskZoomTransitioningDelegate new];
在`prepareForSegue:sender:`中分配smallView
和transitioningDelegate
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
self.transitioningDelegate.smallView = sender; // The view you are transitioning from.
...
segue.destinationViewController.transitioningDelegate = self.transitioningDelegate;
segue.destinationViewController.modalPresentationStyle = UIModalPresentationCustom;
}
在展示视图控制器中实现MZMaskZoomTransitionPresentedViewController
协议
@synthesize largeView, viewsToFadeIn;
- (NSArray *)viewsToFadeIn
{
return @[self.label1, self.label2, self.label3]; // Any views you want to fade in at the end of the transition.
}
- (UIView *)largeView
{
return self.someLargeView; // The view you are transitioning to.
}
默认持续时间是0.25秒。
默认为YES。当销毁视图控制器时设置为NO(见MZMaskZoomTransitioningDelegate
)。
默认为NO。如果想要销毁过渡将视图缩小到0,则设置为YES。这在smallView
在展示视图控制器中不再可见时很有用(例如,项目已删除)。
MaskZoomTransition 在MIT许可证下发布。有关详细信息,请参阅LICENSE文件。