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

标签 ios cocoa-touch storyboard uilabel autolayout

我最近不得不为我的项目中的 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/

相关文章:

objective-c - 在 iOS 的 Objective-C 中创建带有完成 block 的可中断动画?

cocoa - NSUTF8StringEncoding 导致文件在 TextEdit/Pages 中渲染不正确,但在 BBEdit/vi 中则不会

iOS Facebook : Fetching user data using storyboard

ios - 容器边界内的 UIContainer viewcontroller segue

iphone - TableViewController - 半个 View /半个 tableView 滚动不起作用

Objective-C:performSelector:与 forwardInvocation:

ios - 在后台获取中加载 UIWebView

ios - 在 while 循环中减去 double 会产生奇怪的结果

iphone - 使用 xcode 4 在 ios 5 中创建选项卡式导航应用程序时出现问题

ios - UITableViewCell setSelected :animated called twice on iPad