ios - 了解 iOS Objective C 中的视觉格式约束

标签 ios objective-c nslayoutconstraint

我知道如何在 InterfaceBuilder 中设置约束。前导、尾随、顶部、底部、固定宽度等。 我找到了一些约束代码,我不知道这段代码试图设置哪个约束,下面的视觉格式约束到底是什么意思?

  NSDictionary *binding = @{@"v" : self.view};
    NSDictionary *metrics = @{@"height" : @(self.height)};
    [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[v]|" options:0 metrics:nil views:binding]];
    [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[v(==height)]|" options:0 metrics:metrics views:binding]];

最佳答案

H:|[v]|

H 表示约束是水平添加的,同样 V 是垂直添加的。

| 表示绑定(bind)字典指示的 super View 。 NSDictionary *绑定(bind)

[v] 表示 View 本身。

因此 H:|[v]| 解析为 0 常量的前导和尾随约束。

V:[v(==height)]|

与此类似, View 被赋予底部约束和高度约束,并具有常量 height,如 NSDictionary *metrics 中所述。

请引用https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/VisualFormatLanguage.html获取更多信息。

关于ios - 了解 iOS Objective C 中的视觉格式约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47390788/

相关文章:

iphone - 连结应用程式时发生错误

java - Box2d 设置变换

ios - 当一个应用程序从后台启动时,applicationDidBecomeActive 会被调用吗?

ios - 如何添加带约束的 subview ,使 subview 与其父 View 具有相同的框架?

iOS11 没有正确接受约束

iphone - 在 Iphone 的 "https://path.com/"和 "linkedin"上发布消息

ios - 如果用户的iOS版本低于7.0,是否应该使用7.0中不推荐使用的方法?

iphone - 从 MP3 文件/ID3 标签获取专辑插图

ios - UICollectionView 未正确更新 - 使用 THStringyFlowLayout

ios - 嵌套 Controller + View ,以编程方式添加约束,哪个地方?最佳实践?