Xcode 6 无法在启用自动布局的情况下移动 UIButton

Posted

技术标签:

【中文标题】Xcode 6 无法在启用自动布局的情况下移动 UIButton【英文标题】:Xcode 6 unable to move UIButton with Autolayout on 【发布时间】:2015-07-29 22:50:30 【问题描述】:

我有一些代码可以使用它的标签来移动我的按钮。

- (void) moveButtonWithTag:(int)tag :(int)x :(int)y
    UIButton *button = (UIButton *)[self.view viewWithTag:tag];
    CGRect btFrame = button.frame;
    btFrame.origin.x = x;
    btFrame.origin.y = y;
    button.autoresizingMask = UIViewAutoresizingNone;
    button.frame = btFrame;

这没有任何作用,我尝试使用相同的代码移动我的按钮,但我将按钮拖到 .h 文件中而不是标签,这也不起作用。有人能帮我吗? 我正在使用 Xcode 6.4 ios 8.4 Autolayout ON Sizeclasses ON。情节提要上的任何按钮或使用代码以其他方式创建的按钮都没有任何限制。我正在测试的设备是 iOS Simulator iPhone 6(4.7 英寸)。

【问题讨论】:

button 为零吗?证明它不是。这是第一步...... 【参考方案1】:
    如果您使用自动布局,最佳做法是更改您创建的NSLayoutConstraint (IB)。 https://***.com/a/27792550/846780 你在哪里打电话moveButtonWithTag:x:y?也许您在“应用”所有约束之前调用它。如果您想要这种“肮脏”的方法,请尝试更改 viewDidLayoutSubviews 上的帧。 检查按钮是否为零

【讨论】:

以上是关于Xcode 6 无法在启用自动布局的情况下移动 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

无法在自动布局“打开”的情况下移动 UILabel 的 Y 位置

按钮和自动布局

如何在启用自动布局的情况下更改 iOS6 中的 UIView 大小?

Xcode 6 中已开发应用程序中的自动布局实现

Xcode 6.4 - 无法对视图或...设置约束

Xcode 9:无法渲染和更新“VC”T..s.framework 的自动布局状态:需要为“TextFieldEffects.framework”移动代码签名