iphone - 有没有办法执行 UIModalTransitionStyleCoverHORIZONTAL(不是 FlipHorizo​​ntal)?

标签 iphone objective-c modal-dialog

我正在使用 objective-c(显然,我猜)我想知道是否有一种(简单的)方法来呈现模态视图但让 View 从屏幕右侧滑入.

UIModalTransitionStyleCoverVertical 有新的 View 从底部滑入,所以我天真地认为会有一个水平的对应物,但我在文档中找不到。

我不是说 UIModalTransitionStyleFlipHorizo​​ntal(我不想要 3D 翻转)。

没有 UINavigationController 的包袱,还有另一种方法可以做到这一点吗?想法?

谢谢!

最佳答案

您可以通过将 View 添加为 subview 来完成此操作,但设置其变换以使其位于屏幕外,在您的情况下至少为一个屏幕宽度。然后启动一个动画 block ,其中包括将变换重置为统一。动画完成后,您可以执行其他操作,例如替换现在隐藏的 View 。

这是一个片段:

[[outgoingView superview] insertSubview:incomingView aboveSubview:outgoingView];
incomingView.transform = [self affineTransformForTransationInDirection:BTRightDirection];

// Set up and start the animation
[UIView beginAnimations:@"cover" context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:BTSCREEN_ANIMATION_TIME];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(coverIncomingViewConclusion:finished:context:)];
incomingView.transform = CGAffineTransformIdentity;
self.outgoingView = outgoingView;   // Remember the outgoing view
[UIView commitAnimations];

方法 affineTransformForTransationInDirection: 是一个帮助器,它知道屏幕的宽度和高度并返回适合该方向的变换。它这样做是为了从左边移动:

CGAffineTransformMakeTranslation(-FHScreenWidth(), 0.0);

关于iphone - 有没有办法执行 UIModalTransitionStyleCoverHORIZONTAL(不是 FlipHorizo​​ntal)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1872076/

相关文章:

ios - 如何删除弹出 UIViewController 中的 UIParallaxDimmingView?

iOS:键盘上方的工具栏

java - JInternalFrame 作为模态

iphone - 如何开发具有混响功能的iPhone应用程序?

iphone - 如何在iphone中解码UTF8字符串

iphone - 尝试将应用提交到应用商店时出现警告 : Application failed codesign check

ios - 在 tvOS 应用程序中使用 iOS 框架

objective-c - 如何从 firebase 数据库读取一小节

angular - 将数据从模态返回到 Angular 中的组件

javascript - 通过单击位于模态 - ANGULAR 中的 <ul> 选择选项