ami*_*ade 5 ios ios-autolayout
我在视图中有一个按钮.我在界面构建器中为我的按钮设置了图像.我在界面构建器中添加到按钮的约束是:
正确的超视空间= 10
顶级空间到superview = 10
底部空间到superview> = 10
将空格留给标签> = 10
一切正常,我的布局没问题.但是当我使用以下代码记录按钮约束时:
NSLog(@"constraints for btnBack is: %@", self.btnBack.constraints);
Run Code Online (Sandbox Code Playgroud)
控制台日志:
constraints for btnBack is:(
"<NSContentSizeLayoutConstraint:0x7c35c400 H:[UIButton:0x7c3588a0(102)] Hug:250 CompressionResistance:750>"
"<NSContentSizeLayoutConstraint:0x7c35c450 V:[UIButton:0x7c3588a0(92)] Hug:250 CompressionResistance:750>")
Run Code Online (Sandbox Code Playgroud)
我知道顶部和左右和底部约束不应该在这里记录,因为它们是超视图约束而不是按钮约束.但在这里我没有添加任何宽度和高度约束到我的按钮(即使在代码中).
为什么在控制台中记录约束高度和宽度?
rob*_*off 11
如果视图具有基于其内容的自然宽度,则返回该宽度intrinsicContentSize.width.否则,它设置intrinsicContentSize.width为UIViewNoIntrinsicMetric.
同样,如果它具有自然高度,则返回该宽度intrinsicContentSize.height.否则,它设置intrinsicContentSize.height为UIViewNoIntrinsicMetric.
按钮具有自然尺寸(宽度和高度),由其标题,字体,图像和其他细节决定.所以它intrinsicContentSize.width和intrinsicContentSize.height都是有效的尺寸,而不是UIViewNoIntrinsicMetric.
何时intrinsicContentSize.width != UIViewNoIntrinsicMetric,自动布局NSContentSizeLayoutConstraint在视图上安装特殊的类型约束.同样,当intrinsicContentSize.height != UIViewNoIntrinsicMetricauto自动布局NSContentSizeLayoutConstraint在视图上安装时.
有关这些特殊约束的详细信息,请参阅此答案.
| 归档时间: |
|
| 查看次数: |
806 次 |
| 最近记录: |