【发布时间】:2013-10-23 08:32:52
【问题描述】:
对于仅限 iOS7 的应用程序,我有一个 UITableView(如果有帮助的话,将其更改为 UICollectionView 会很学术),其中的单元格如下所示:
+----------------------------------+=======+
| Label1 | sub- |
| Label2 Label3 | view |
+----------------------------------+=======+
我想过渡到第二个视图,其中子视图被缩小到更大,并且标签位置发生变化,更像这样:
+----------+
| |
| subview |
| |
+----------+
Label1
Label2
Label3
这类似于 iOS7 日历应用程序,其中视图在途中转换和动画部件。我知道我需要实现UIViewControllerAnimatedTransitioning,但我在概念上遇到了这样的问题。我是否隐藏单元格的子视图,将它们替换为新视图的子视图但在同一个地方,然后为它们设置动画?还是有不那么复杂的方法?任何示例代码都将不胜感激,因为我发现的所有示例都没有将子视图从一个视图转移到另一个视图。
ETA:我想得越多,我就越想知道:这是否可以通过带有流布局的 UICollectionView 更好地处理,并且只需将细节设置为将单元格调整为屏幕的完整大小的动画?
【问题讨论】:
-
你的意思是你在视图控制器之间移动?
-
是的。我正在使用 UINavigationController。点击 UITableView 中的单元格会将详细的 UIViewController 推送到堆栈上,我想使用 iOS7 中的新动画过渡来做到这一点。
-
我今天一直在搞同样的事情。到目前为止我发现的唯一的东西,我不喜欢它,因为它感觉很hackish,是在我的 UIViewControllerAnimatedTransitioning 协议类中导入我的目标类,将 subivew 属性公开,然后在 animateTransition: 中调整它们的帧/比例.它有效,但我不喜欢将其作为解决方案。
-
是的,我目前在想,我基本上会在 detailview 上复制单元格中的视图,在过渡时,隐藏单元格视图并显示 detailview 视图,背景透明,然后在我将详细视图视图设置为动画时淡入背景,而不是在控制器之间实际共享视图。
-
我已经放弃了不断变化的矩形、自动布局和约束,因为这些会导致头疼。 CGaffinetransforms 产生了更好的结果,但仍然不是很好。想着做快照,把快照拼接成多张快照,每一张都进行变换。
标签: ios ios7 transitions