[英]How to position a child view relative to containing view size?
我希望能够从顶部将我的孩子视图放置为超级视图大小的25%。
NSLayoutConstraint *topPositionConstraint = [NSLayoutConstraint constraintWithItem:_containerView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:_childView
attribute:NSLayoutAttributeHeight
multiplier:0.25f
constant:0.0f];
但是,现在我收到以下异常:
'NSInvalidArgumentException', reason: '*** +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: Invalid pairing of layout attributes'
为什么会发生错误,如何实现我想要的?
如果您使用底部而不是高度,则可以将百分比移动到乘数,而不是使用已接受的答案中的框架。 我正在使用这种技术进行基于百分比的子视图定位。 这也很好,因为在创建约束时可能未设置容器视图的框架:
NSLayoutConstraint *topPositionConstraint =
[NSLayoutConstraint constraintWithItem:_childView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:_containerView
attribute:NSLayoutAttributeBottom
multiplier:0.25
constant:0];
您不能在同一约束中使用top和height。 尽管说出来很有意义,但系统并不喜欢它。
相反,您可以做的是...
NSLayoutConstraint *topPositionConstraint =
[NSLayoutConstraint constraintWithItem:_childView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:_containerView
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:_containerView.frame.size.height * 0.25];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.