gpt4 book ai didi

ios - 当我 NSLog myBtn.constraints 时记录额外的约束

转载 作者:可可西里 更新时间:2023-11-01 04:21:57 25 4
gpt4 key购买 nike

我在 View 中有一个按钮。我在界面生成器中为我的按钮设置了图像。我在界面生成器中添加到我的按钮的约束是:

super View 的右侧空间 = 10

super View 的顶部空间 = 10

父 View 的底部空间 >= 10

标签的剩余空间 >= 10

一切正常,我的布局没有问题。但是当我用这段代码记录按钮约束时:

NSLog(@"constraints for btnBack is: %@", self.btnBack.constraints);

控制台日志:

constraints for btnBack is:(

"<NSContentSizeLayoutConstraint:0x7c35c400 H:[UIButton:0x7c3588a0(102)] Hug:250 CompressionResistance:750>"

"<NSContentSizeLayoutConstraint:0x7c35c450 V:[UIButton:0x7c3588a0(92)] Hug:250 CompressionResistance:750>")

我知道顶部、左侧、右侧和底部的约束不应该在这里记录,因为它们是父 View 约束而不是按钮约束。但在这里我没有为我的按钮添加任何宽度和高度约束(即使在代码中)。

为什么约束高度和宽度会记录在控制台中?

最佳答案

如果 View 具有基于其内容的自然宽度,它会将该宽度作为 intrinsicContentSize.width 返回。否则,它将 intrinsicContentSize.width 设置为 UIViewNoIntrinsicMetric

同样,如果它有自然高度,它会将该宽度作为 intrinsicContentSize.height 返回。否则,它将 intrinsicContentSize.height 设置为 UIViewNoIntrinsicMetric

按钮具有自然大小(宽度和高度),由其标题、字体、图像和其他细节决定。所以它的 intrinsicContentSize.widthintrinsicContentSize.height 都是有效尺寸,而不是 UIViewNoIntrinsicMetric

intrinsicContentSize.width != UIViewNoIntrinsicMetric 时,自动布局会在 View 上安装类型为 NSContentSizeLayoutConstraint 的特殊约束。同样,当 intrinsicContentSize.height != UIViewNoIntrinsicMetric 时,自动布局会在 View 上安装 NSContentSizeLayoutConstraint

有关这些特殊约束的详细信息,请参阅 this answer .

关于ios - 当我 NSLog myBtn.constraints 时记录额外的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36673884/

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