ios autolayout不会更改按钮框位置

时间:2014-10-18 11:45:08

标签: ios position autolayout

我有一个视图,我在autolayout上设置了这个视图。当我在4s iphone中更改按钮框架/位置时,我无法更改它。如何更改ios 4s中的按钮位置 注意不改变autolayout属性?

这是我的代码:

CGRect screenBounds = [[UIScreen mainScreen] bounds];

    if (screenBounds.size.height == 568)
    {
        // NSLog(@"Our App is running in iPhone5");
    }
    else
    {
        //NSLog(@"Our App is running in iPhone 3GS, 4, 4S");
        [btn_next setFrame:CGRectMake(12,100,120,45) ];
        [getTime setFrame:CGRectMake(151,361,89,162) ];
        [picker_AMPM setFrame:CGRectMake(245,304,55,162)];
        [img_blowline setFrame: CGRectMake(0,418,320,6)];         
    }

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式完成:

设置translatesAutoresizingMaskIntoConstraints = YES,然后在运行时调用setFrame:会自动转换为新约束。

translatesAutoresizingMaskIntoConstraints还将根据视图的autoresizingMask添加新约束。

更多详细信息,请参见 Cocoa Auto Layout Guide中的“采用自动布局”部分。

答案 1 :(得分:0)

这是因为您需要更改按钮的约束,而不是它的框架。为此,您需要为约束创建一个出口,并在代码中更改它并更改约束的constant属性。代码将是这样的:

self.myConstraintX.constant=newX;
self.myConstraintY.constant=newY;
[self.view layoutSubviews];
[self.containerView layoutSubviews];

需要注意的一件重要事情是确保不重复此代码。