我有一个视图,我在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)];
}
答案 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];
需要注意的一件重要事情是确保不重复此代码。