我希望能够将我的子视图从顶部定位为超级视图大小的25%.
NSLayoutConstraint *topPositionConstraint = [NSLayoutConstraint constraintWithItem:_containerView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:_childView
attribute:NSLayoutAttributeHeight
multiplier:0.25f
constant:0.0f];
Run Code Online (Sandbox Code Playgroud)
但是,现在我得到以下异常:
'NSInvalidArgumentException', reason: '*** +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: Invalid pairing of layout attributes'
Run Code Online (Sandbox Code Playgroud)
为什么会出现错误,如何实现我想要的?
Mic*_*ire 23
如果您使用底部而不是高度,则可以将百分比移动到乘数,而不是像在接受的答案中那样使用框架.我正在使用这种技术进行基于百分比的子视图定位.它也很好,因为在创建约束时可能无法设置容器视图的框架:
NSLayoutConstraint *topPositionConstraint =
[NSLayoutConstraint constraintWithItem:_childView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:_containerView
attribute:NSLayoutAttributeBottom
multiplier:0.25
constant:0];
Run Code Online (Sandbox Code Playgroud)
您不能在同一约束中使用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];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3581 次 |
| 最近记录: |