动画和视图的Autolayout最初不在屏幕上?

时间:2015-05-07 03:37:45

标签: ios ios8 autolayout

我喜欢自动布局,而且我已经超过了大部分时间的沮丧情绪。但有一件事我不明白是如何使用它来开始屏幕上的视图,并希望在屏幕上设置动画。

如何为不在屏幕上的视图设置约束?因为它不在屏幕上,所以我不能通过坚持覆盖手机距离的布局指南来启用可变高度和宽度。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

仅供参考:您可以拥有约束的IBOutlet。

现在,假设您有一个宽度为100且高度为100的视图。

如果您想通过使用autolayout更改它的宽度和高度来为此视图设置动画,则需要执行以下步骤。

第1步:为该视图指定宽度 - 高度限制。(例如,宽度= 100,高度= 100)。

第2步:在ViewController中获取该视图约束的IBOutlet。

第3步:每当您想通过动画更改宽度和高度时,请更改该约束的constant属性。

例如:

widthContraint.constant = 50
heightContraint.constant = 50

第4步:更改常量后,调用动画块中的layoutSubviews()方法执行动画。

<强>实施例

UIView.animateWithDuration(2.0, animations: {
        self.view.layoutSubviews()
    })

这会在100秒内将视图的宽度和高度从50更改为2.0

对于不在屏幕上的视图:

将该视图的宽度和高度设为 0 。 然后将它增加到你想要的任何东西。