【问题标题】:Changing Xcode View Positions programatically with Autolayout enabled在启用自动布局的情况下以编程方式更改 Xcode 视图位置
【发布时间】:2014-12-18 10:41:59
【问题描述】:

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

override func viewDidLoad() { 
super.viewDidLoad() 

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

} 

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

【问题讨论】:

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


【解决方案1】:

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

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

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


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

【讨论】:

  • 我明白这一点,但是如果您想以编程方式更改这些位置并在单击按钮时为视图设置动画怎么办?
  • 然后参考thisthis
  • 使用已编辑的答案,它肯定会对您的 NSLayoutConstraint 的 IBOutlet 有所帮助,您必须在情节提要中创建一次约束,之后您只能编辑此约束。
【解决方案2】:

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

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

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

【讨论】:

  • 是否有链接可以进一步详细说明或显示分步过程?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
相关资源
最近更新 更多