免责声明:我对 iOS 开发比较陌生。这是我第一次尝试自动布局。
我有一个容器UIView
,其中包含一个UIImageView
和一个UILabel
当我单击UIButton
视图控制器底部的 时,我希望UIImageView
消失并UILabel
自动转到顶部。
PS 请给我介绍一些学习自动布局原理的好资源。谢谢
免责声明:我对 iOS 开发比较陌生。这是我第一次尝试自动布局。
我有一个容器UIView
,其中包含一个UIImageView
和一个UILabel
当我单击UIButton
视图控制器底部的 时,我希望UIImageView
消失并UILabel
自动转到顶部。
PS 请给我介绍一些学习自动布局原理的好资源。谢谢
最简单的方法是
定义图像视图高度的约束;
IBOutlet
为该约束定义一个;和
当您点击按钮时,constant
将该图像视图的高度约束设置为 0,然后layoutIfNeeded
按照 bandejapaisa 的建议进行操作:
[UIView animateWithDuration:0.25f animations:^{
[view layoutIfNeeded];
}];
如果所有其他约束都正确定义(例如按钮的顶部约束是图像视图而不是超级视图,按钮对超级视图没有底部约束等),那么这应该会产生预期的效果。此外,如果您将图像视图更改为contentMode
“方面填充”之类的内容,请确保将图像视图定义为剪辑子视图(这样您就不会让图像溢出零高度图像视图之外)。
如果您可以弄清楚您的开始和结束布局约束,那么您可以使用此模板对其进行动画处理:
// add/remove constraints here or even change the constants of a current constraint
[view setNeedsUpdateConstraints];
[UIView animateWithDuration:0.25f animations:^{
[view layoutIfNeeded];
}];
还可以观看 AutoLayout 上的 WWDC 视频。WWDC 2012 232 Auto Layout by Example 非常棒。