0

我试图在触摸时将视图从缩略图动画化为全屏视图。当视图处于缩略图模式时,它是 UITableView.tableFooterView 的子视图。当我动画到全屏时,我在更新约束之前将视图移动到控制器的根视图。我这样做是因为 tableview 剪辑了子视图。

这工作得很好,但是当我尝试做反向动画时,它并不那么容易。我必须先将缩略图视图移回 UITableView.tableFooterView 的子视图,然后才能更新约束。然后我撤消约束(基本上将它们设置为最初的位置)。这可行,但动画看起来不正确,因为一旦将视图移回 UITableView.tableFooterView ,它就会再次被 UITableView 剪辑,并且动画部分隐藏在所有 tableview 装饰后面!

我的想法是获取约束的计算帧并执行老式帧动画,然后安装约束。

有没有一种已知的方法可以在给定一系列约束的情况下询问布局系统,如果没有实际安装这些约束,框架将是什么?

谢谢。

4

1 回答 1

1

我不认为有这样的方法。

请注意,您定义的约束 ( NSLayoutConstraint) 不是唯一的约束。其他约束由视图的属性定义(例如内在内容大小、拥抱优先级等)。

我想这对于自动调整大小而不是自动布局会更好。

另一种解决方案是在表格页脚中使用隐藏的占位符视图。当您将视图返回到页脚时,您可以只要求占位符的框架。

于 2013-07-15T15:49:10.103 回答