如何在没有Interface Builder的情况下将UIButton对象的中心约束到其超级视图

时间:2019-05-05 12:55:07

标签: objective-c autolayout nslayoutconstraint

G'day,全部!对不起,我有点麻烦,但是尽管我付出了所有努力,但我仍然无法在代码中使用自动布局功能。我主要在命令行上构建没有Xcode的iOS应用。因此,我认为这可能会引起一些与自动版式相关的问题。请在下面找到将UIButton对象的中心限制为其超级视图的最简单尝试。

到目前为止,我已经尝试了各种布局技术,包括锚定,NSLayotConstraintconstraintWithItem:和VFL。以上内容均未对子视图的位置产生任何影响。我既没有编译也没有运行时错误。 TranslatesAutoresizingMaskIntoConstraints为OFF。老实说,它让我不满意,这使我的代码无法按预期运行。而且,我已经浏览了许多在线提供的“自动布局”示例。任何帮助将不胜感激。

{
  NSLayoutConstraint    *constraint;

  [aButton setTranslatesAutoresizingMaskIntoConstraints:NO];
  constraint =
    [NSLayoutConstraint
      constraintWithItem:aButton
      attribute:NSLayoutAttributeCenterX
      relatedBy:NSLayoutRelationEqual
      toItem:aButton.superview
      attribute:NSLayoutAttributeCenterX
      multiplier:1.0f
      constant:0.0f];
  constraint.active = YES;
  [aButton.superview addConstraint:constraint];
  constraint =
    [NSLayoutConstraint
      constraintWithItem:aButton
      attribute:NSLayoutAttributeCenterY
      relatedBy:NSLayoutRelationEqual
      toItem:aButton.superview
      attribute:NSLayoutAttributeCenterY
      multiplier:1.0f
      constant:0.0f];
  constraint.active = YES;
  [aButton.superview addConstraint:constraint];
}```

1 个答案:

答案 0 :(得分:0)

事实证明,问题是由于我链接了错误的SDK而引起的。我应该使用iPhoneSimulator12.1.sdk代替iPhoneSimulator.sdk。

-isysroot $(ISYS_ROOT)
ISYS_ROOT = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk

一百万感谢所有努力的人。