我最近不得不为我的项目中的 Storyboard 打开自动布局。这影响了我希望不会影响的观点。我描述的 View 有许多 UILabels
,它们根据 View 中是否存在图像以编程方式定位。但是,现在我的编程定位代码什么都不做,标签仍然保留在 Storyboard View 中的位置。为了解决这个问题,我在 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);
}];
有没有一种方法可以在不干扰自动布局的情况下以编程方式重新定位标签?
最佳答案
您需要为约束而不是框架设置动画。如果您不这样做,那么自动布局会将 View 重新定位到它们之前的位置;毕竟这是它的工作。
(但是在 viewDidLoad
中做动画没有意义; View 还不在界面中,所以没有什么可以做动画的。)
关于ios - Storyboard 中的自动布局会影响编程定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24967284/