问题标签 [uikit-transitions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1342 浏览

ios - iOS:如何为两个 UIView 之间的翻转设置动画?

我正在尝试为 UIButton 实例和 UIImageView 实例之间的翻转效果设置动画。基本上它是一个“翻转扑克牌”效果,一侧(UIImageView)只是一个很好的模式,当翻转时,它应该显示一个带有一些文本的 UIButton。

我的代码存在以下问题:

  • UIButton子视图的文字在翻转后不显示
  • 翻转动画期间阴影消失

这是目标的直观表示:

在此处输入图像描述

在这里您可以下载非常简单的示例应用程序。

任何建议如何解决上述两个问题?

我真的没有想法 - 任何帮助都非常感谢!

这是标题代码:

下面是实现代码:

这是一个在视觉上装饰我的视图的类别:

0 投票
1 回答
2529 浏览

ios8 - 当另一个视图控制器显示在它上面时,UIPresentationController 会改变大小

我正在使用 UIPresentationController 展示一个模态视图控制器。我使用以下方法将presentView的框架设置为小于containView的边界:

到目前为止,一切都很好。

现在,我在当前显示的模态视图控制器之上以模态方式(默认不是自定义)呈现另一个视图控制器,它占据了整个屏幕。因此,我在覆盖整个屏幕的默认模态视图控制器下方有一个自定义模态视图控制器。

问题是当我关闭覆盖整个屏幕的顶视图控制器时,我的自定义视图控制器也会显示覆盖整个屏幕。我希望我的自定义视图控制器的大小保持不变(小于 containerView)。有什么办法可以做到这一点。

任何帮助,将不胜感激

0 投票
1 回答
357 浏览

ios - 交叉溶解过渡干扰 UIPageController 页面上的页面卷曲

我在 UIPageController 子类的页面上的图像之间进行交叉溶解。在应用过渡时可以翻页。有时,正在翻页的页面会在翻页过程中变得透明,直到转换完成。

在下面的代码中,Page 类是 UIViewController 的子类,其视图具有 UIImageView 子视图。PageController 是我的 UIPageViewController 子类。

页面代码如下:

我猜交叉淡入淡出和页面卷曲动画以一种奇怪的方式堆叠。关于如何防止这种“消失的页面”副作用的任何想法?

0 投票
1 回答
623 浏览

ios - Apple Music UIKit 过渡:我应该使用哪些 API 来完成此操作?

Apple 在 iOS 9 中的新音乐应用程序是一个漂亮的应用程序。我想知道我将如何复制它的一些功能,包括这个美丽的过渡。播放托盘从屏幕底部滑出,而艺术品本身则缩小到隐藏在初始视图控制器后面的 UITableView 上。这些 API 是公开的吗?如果是这样,我将如何与他们一起实现这种效果?

UIKit 过渡

0 投票
0 回答
259 浏览

ios - iOS中的翻转卡片过渡

我按照以下指南来实现翻牌动画: https ://www.raywenderlich.com/110536/custom-uiviewcontroller-transitions

这是我的动画师的代码(与指南上的相同):

}

问题:我只看到视图在它的边缘翻转,然后什么也没有!屏幕消失了,我根本看不到目标视图控制器视图。虽然我可以看到它的函数 viewDidLoad 确实被调用(添加了打印调试)。由于某种原因,只有前 1/3 的动画有效,然后我什么都看不到。

0 投票
3 回答
98 浏览

ios - 使用 ContainerViewController,如何在子 ViewController 之间添加交互式动画?

我正在尝试创建一个自定义NavigationViewController的导航栏,其中导航栏是顶部的可滑动栏,用于控制转换(想想UITabBarController但使用滑动手势而不是按钮)。这是一个快速模型。我为粗鲁道歉

我将标题栏设置为 ScrollView。我已经能够使用该scrollViewDidScroll方法成功检测到滚动量。所以我已经安装了标题栏部分。我现在需要在scrollViewDidScroll方法中实现过渡运动。

我已经查阅了有关如何将视图控制器相互嵌入的Apple 文档,但它并没有真正帮助解释如何做到这一点。文档提到调用该addChildViewController:方法和一堆其他方法,如果我想让 viewController 立即消失并重新出现,这些方法都很好,但在这种情况下,我发现很难以交互方式进行操作。

我是否要创建当前 VC 的快照然后移动它?但那我到底在移动什么?例如,在图片中,我是否将整个 RedVC 向左移动?但是,如果 BlueVC 从框架外开始移动,我如何获得它的快照呢?如果我想在 BlueVC 中异步加载图像怎么办?在 BlueVC 卡到位之前,我是否必须使用带有占位符的占位符快照?

这一切都变得如此复杂......我已经单独完成了这样的事情(快照、自定义 VC 转换等),但在这样的情况下将它们全部组合起来我还不够舒服。我敢肯定,只要有足够的时间,我就能搞定一些方法,但我想了解什么是最好、最干净的方法。

我很感激任何帮助!谢谢。

接受@MilanNosáľ 的回答后编辑:

我最终使用了这个 repo中链接的他的框架。它还不是交互式的,但我可以使用他们为我所做的非常慷慨的事情来弄清楚其余的部分。我希望我可以在这里发布完整的代码,但这不是很实用。对于未来的 SO 旅行者,回购将无限期地保留。

0 投票
2 回答
1209 浏览

ios - 由捏合和平移手势识别器同时触发的交互式 ViewController 转换

在此处输入图像描述

我有两个视图控制器:

视图控制器1

一个复杂的子视图控制器堆栈,中间有一个 imageView

视图控制器2

嵌入了 imageView 的滚动视图

我想要实现的是两个 viewControllers 之间的转换,它是通过从 viewController 1 捏 imageView 来触发的,导致它放大并切换到 viewController 2。当转换结束时,应该尽可能放大 imageView因为它在捏合手势触发的过渡期间被缩放。

同时我想在执行缩放过渡时支持平移图像,这样就像缩放一样,最终状态的图像将转换到它被平移到的位置。

到目前为止,我已经尝试过 Hero 过渡 pod 和我自己编写的自定义 viewController 过渡。英雄转换的问题是图像没有正确捕捉到第二个视图控制器中的结束状态。我在使用自定义 viewController 转换时遇到的问题是我无法同时进行缩放和平移。

有谁知道如何在 Swift 中实现这一点?非常感谢您的帮助。

0 投票
1 回答
948 浏览

ios - UIViewController 交互式过渡 - 取消交互式关闭时呈现的视图消失

我有一个演示应用程序,我正在尝试模仿邮件应用程序“新消息”交互式转换 - 您可以向下拖动以关闭,但如果您没有拖动足够远,视图会弹回并取消转换。我能够在我的演示应用程序中复制过渡和交互性,但是我注意到当取消过渡被取消时,呈现的视图控制器被动画回原位,然后消失。这是它的样子:

在此处输入图像描述

我最好的猜测是转换上下文的容器视图由于某种原因被删除了,因为我向其中添加了呈现的视图控制器的视图。这是UIViewControllerAnimatedTransitioning对象内的演示和关闭代码:

显示过渡

解除过渡

这是UIPercentDrivenInteractiveTransition对象中的代码:

任何帮助将不胜感激。值得注意的是,我使用这个 Ray Wenderlich 教程作为参考 - https://www.raywenderlich.com/322-custom-uiviewcontroller-transitions-getting-started 但是他们使用图像快照来为过渡设置动画我正在使用视图控制器的意见。