1

免责声明:我对 iOS 开发比较陌生。这是我第一次尝试自动布局。

我有一个容器UIView,其中包含一个UIImageView和一个UILabel

当我单击UIButton视图控制器底部的 时,我希望UIImageView消失并UILabel自动转到顶部。

PS 请给我介绍一些学习自动布局原理的好资源。谢谢

4

2 回答 2

0

最简单的方法是

  • 定义图像视图高度的约束;

  • IBOutlet为该约束定义一个;和

  • 当您点击按钮时,constant将该图像视图的高度约束设置为 0,然后layoutIfNeeded按照 bandejapaisa 的建议进行操作:

    [UIView animateWithDuration:0.25f animations:^{
        [view layoutIfNeeded];
    }];
    

如果所有其他约束都正确定义(例如按钮的顶部约束是图像视图而不是超级视图,按钮对超级视图没有底部约束等),那么这应该会产生预期的效果。此外,如果您将图像视图更改为contentMode“方面填充”之类的内容,请确保将图像视图定义为剪辑子视图(这样您就不会让图像溢出零高度图像视图之外)。

于 2013-09-13T16:21:50.567 回答
0

如果您可以弄清楚您的开始和结束布局约束,那么您可以使用此模板对其进行动画处理:

// add/remove constraints here or even change the constants of a current constraint
[view setNeedsUpdateConstraints];

[UIView animateWithDuration:0.25f animations:^{
    [view layoutIfNeeded];
}];

阅读Cocoa AutoLayout Guide

还可以观看 AutoLayout 上的 WWDC 视频。WWDC 2012 232 Auto Layout by Example 非常棒。

于 2013-09-13T15:05:09.843 回答