Storyboard中的自动布局会影响编程定位

时间:2014-07-26 03:36:13

标签: ios cocoa-touch storyboard uilabel autolayout

我最近不得不在项目中打开故事板的自动布局。这影响了我希望不会的观点。我所描述的视图有许多UILabels,它们根据视图中是否存在图像以编程方式定位。但是,现在我的程序化定位代码什么都不做,标签会保留在故事板中放置在视图中的位置。为了解决这个问题,我在viewDidLoad尝试了一个动画,它没有做任何事情:

[UIView animateWithDuration:0.5 animations:^{

            label1.frame = CGRectMake(10, baseY, 300, 50);
            label2.frame = CGRectMake(10, baseY+35, 300, 50);
            label3.frame = CGRectMake(10, baseY+60, 300, 50);
            label4.frame = CGRectMake(10, baseY+85, 300, 50);
            label5.frame = CGRectMake(10, baseY+110, 300, 50);
            label6.frame = CGRectMake(10, baseY+135, 300, 50);
            label7.frame = CGRectMake(10, baseY+180, 300, 175);
}];

我是否可以通过编程方式重新定位标签而不会干扰自动布局?

1 个答案:

答案 0 :(得分:2)

您需要为约束而不是框架设置动画。如果你不这样做,那么自动布局会将视图重新定位在它们之前的位置;毕竟,这是它的工作。

(但viewDidLoad中的动画没有意义;视图还没有在界面中,所以没有动画效果。)