奇怪的NSLayoutConstraint行为

时间:2016-02-06 17:08:32

标签: objective-c xcode7 nslayoutconstraint

我有一个UIScrollView,我添加了一个UITextView。我有以下约束,我也添加到视图中:

NSLayoutConstraint *xConstraint = [NSLayoutConstraint constraintWithItem:textView2 attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:_scrollView attribute:NSLayoutAttributeLeading multiplier:1.0 constant:50];

这种约束可以很好地工作,但是将它从结尾变为尾随,就没有效果了。它仍然显示基于领先。

NSLayoutConstraint *xConstraint = [NSLayoutConstraint constraintWithItem:textView2 attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:_scrollView attribute:NSLayoutAttributeTrailing multiplier:1.0 constant:50];

我不明白为什么当我将约束从前导更改为尾随时,UITextView的位置不会改变位置。我意识到如果它限制在后缘,我还需要将50改为-50,但事实并非如此。

1 个答案:

答案 0 :(得分:0)

对此的解决方案是在UIScrollView中插入UIView。我在故事板中做了这个,并将UIView的顶部和底部约束设置为UIScrollView,但是我将UIView的前导和尾部约束设置为包含UIScrollView的父视图,而UIScrollView又包含UIView。这允许前导和尾随约束正常运行。