在启用Autolayout的情况下以编程方式更改Xcode View Positions

时间:2014-12-18 10:41:59

标签: objective-c xcode swift autolayout ios-autolayout

我正在开发一个Xcode 6 / Swift项目,我注意到当我启用自动布局时,我无法再以编程方式设置我的视图的位置。作为示例,我尝试在ViewDidLoad中覆盖视图上的AutoLayout约束,但它不起作用。

override func viewDidLoad() { 
super.viewDidLoad() 

// This Does not work 
self.myView.center = CGPointMake(150, 200)

} 

如何以编程方式覆盖自动布局视图约束?

2 个答案:

答案 0 :(得分:4)

如果您使用自动布局并且想要任何对象的特定位置,则需要添加约束。
在右下角有4个图标。您可以将它们用于约束。 enter image description here

或者如果您想以此方式进行此操作
然后创建NSLayoutConstraint的IBOutlet并通过这样做设置新值

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *c1;


[UIView animateWithDuration:0.4 animations:^{
        self.c1.constant=500;
    }];

答案 1 :(得分:1)

1-为水平中心和垂直中心创建两个约束。

2-将这些约束从IB连接到您的代码。

3-以编程方式更改这些约束的常量值。