有没有办法在自动布局之前运行.frame.origin.y

时间:2017-03-01 16:51:23

标签: xcode swift3 ios-autolayout

我正在使用autolayout并且已经将对齐的文本字段彼此对齐。但是现在整个应用程序都准备就绪,有一个特殊情况,除了一个文本字段外,将隐藏eveything。所以我用.frame.origin.y

移动这个文本字段

问题是这个文本字段现在出现在中间一秒钟,因为autolauout首先完成它的工作。我不想完全关闭自动布局,我只想在自动布局之前能够这样做。

我尝试了viewdidappear和viewdidload的开头

1 个答案:

答案 0 :(得分:1)

将您的代码放入viewDidLayoutSubviews。这是应用自动布局的时刻。使用条件确保您的代码仅在正确的条件下运行,因为viewDidLayoutSubviews可以在应用程序的生命周期中多次调用,并且大多数时候您不希望它执行任何特殊操作。

请注意,更改frame.origin.y会导致与您的自动布局限制发生冲突。执行此类操作的正确方法是更改​​约束。您可能需要将插座配置为所需的约束,以便您可以在代码中引用它;这样,您就可以更改该约束的constant