在我的 iPhone 应用程序中,我需要显示一个具有透明背景的模态视图,它应该出现动画,就像它从视图中心出现并且它的大小正在增加一样。
当我们单击设置按钮时,类似于“绘制某些东西”iPhone App。
我该怎么做呢?
在我的 iPhone 应用程序中,我需要显示一个具有透明背景的模态视图,它应该出现动画,就像它从视图中心出现并且它的大小正在增加一样。
当我们单击设置按钮时,类似于“绘制某些东西”iPhone App。
我该怎么做呢?
您可以执行以下 4 种过渡样式之一:
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
viewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
viewController.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentModalViewController:viewController animated:YES];
如果你想要一些不包含在这些默认值中的东西,你将不得不构建自己的自定义动画来呈现模态视图。像下面这样,但显然是你想要的风格。
假设您有一个要呈现的名为 aScoreSheet 的 viewController。尝试在将要进行呈现的视图控制器中定义此方法。
-(void) presentTransparentModalViewController: (ScoreSheet *) aViewController
{
scoreSheet = aViewController;
UIView *view = aViewController.view;
view.opaque = NO;
[view.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
UIView *each = obj;
each.opaque = NO;
}];
[self.view addSubview:view];
view.center = CGPointMake(160, 800); //for iPhone
[UIView animateWithDuration:0.9 delay:0 options:UIViewAnimationCurveEaseInOut animations:^{
view.center = CGPointMake(160, 240);
} completion:^(BOOL finished) {
self.view.userInteractionEnabled=YES;
}];
}
然后解雇控制器:
-(void) dismissTransparentModalViewControllerAnimated:(BOOL) animated{
if (animated) {
[UIView animateWithDuration:0.4
animations:^{
scoreSheet.view.center = CGPointMake(scoreSheet.view.center.x, scoreSheet.view.center.y + 480);
} completion:^(BOOL finished) {
[scoreSheet.view removeFromSuperview];
scoreSheet = nil;
}];
}
}
不是一个完整的答案,但也许你可以看看这个开源库:
https://github.com/Split82/HMGLTransitions
它有一些自定义的模态转换,可能不完全是您正在寻找的那个,但您可以通过子类轻松添加您的转换HMGLTransition
。
希望这可以帮助