gpt4 book ai didi

iOS 自动布局 : Set the trailing space equal to the width of the superview

转载 作者:可可西里 更新时间:2023-11-01 06:24:56 25 4
gpt4 key购买 nike

我需要使用自动布局将 View 定位在其父 View 的右边界之外。

我试图通过指定以下 NSLayoutConstraint 来做到这一点:

NSLayoutConstraint *leftConstraint = [NSLayoutConstraint constraintWithItem:self.downloadView
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.contentView
attribute:NSLayoutAttributeWidth
multiplier:1.0
constant:0.0];

self.downloadView 所在的位置是 self.contentView 的 subview 。通过这样做,iOS 会提示以下异常:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: Invalid pairing of layout attributes'

有人可以解释为什么我不能将这两个属性配对,我怎样才能实现我的目标?

最佳答案

是的,您不能将 leading 属性设置为与 contentView 的 width 属性相关。但是,例如,您可以将 downloadView 的前导属性设置为相对于其 superview 的尾随属性,contentView:

NSLayoutConstraint *leftConstraint = [NSLayoutConstraint constraintWithItem:self.downloadView
attribute:NSLayoutAttributeLeading
relatedBy:NSLayoutRelationEqual
toItem:self.contentView
attribute:NSLayoutAttributeTrailing
multiplier:1.0
constant:0.0];

或者您可以将 downloadView 的 leading 属性定义为相对于 contentView 的 leading 属性,然后设置 constant是一些值,例如 View 的宽度。但是,该技术的问题是,在方向发生变化时,constant 将不再适用,您可能必须对其进行调整。

关于iOS 自动布局 : Set the trailing space equal to the width of the superview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17368875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com