ios正确使用constraintLessThanOrEqualToSystemSpacingAfter进行trailingAnchor的方法

时间:2018-04-09 09:46:54

标签: ios autolayout uilabel

我希望以编程方式布局应该适合屏幕宽度的UILabel,系统间距为左右插图。这是我的代码:

statusLabel.font = UIFont.systemFont(ofSize: UIFont.smallSystemFontSize)
statusLabel.numberOfLines = 0
statusLabel.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(statusLabel)

statusLabel.topAnchor.constraint(equalTo: otherView.bottomAnchor, constant: 0),
statusLabel.leadingAnchor.constraintEqualToSystemSpacingAfter(view.safeAreaLayoutGuide.leadingAnchor, multiplier: 1),
statusLabel.trailingAnchor.constraintLessThanOrEqualToSystemSpacingAfter(view.safeAreaLayoutGuide.trailingAnchor, multiplier: 1),
statusLabel.bottomAnchor.constraint(equalTo: someOtherView.topAnchor, constant: 0)

结果如下:

enter image description here

标签按照预期使用系统间距作为左侧插图进行布局,但其trailingAnchor似乎等于超级视图trailingAnchor,而不是在系统之间添加系统间距他们俩。

我已尝试使用constraintEqualToSystemSpacingAfterconstraintGreaterThanOrEqualToSystemSpacingAfter,但得到了相同的结果。

关于如何在标签及其superview的尾随锚之间获得系统间距的任何想法?

1 个答案:

答案 0 :(得分:1)

颠倒顺序就像这样

std::vector<int> foo();
std::vector<auto> a = foo();   // ok, a is a vector<int>
std::vector<auto&&> b = foo(); // error, int doesn't match auto&&

先查看&amp; statusLabel next。