使用视觉格式语言约束 2 个视图

Posted

技术标签:

【中文标题】使用视觉格式语言约束 2 个视图【英文标题】:Constrain 2 Views using visual format language 【发布时间】:2015-05-20 14:26:27 【问题描述】:

我有两个视图,我希望 view1 对 view2 的顶部、底部、尾随和前导空间为零。我怎样才能意识到使用视觉格式语言? 我知道我必须创建一个将字符串分配给视图的字典,然后我才能定义但仅此而已。最好能得到有关如何执行此操作的提示。

// Creating my dictionary
NSDictionary * viewsDictionary = NSDictionaryOfVariableBindings(childController.view,self.containerView);

// How to define the relation i described above ?
NSArray constraints = [NSLayoutconstrain constraintWithVisualFormat:...] 

// How to add the constraints to the actual view ?

【问题讨论】:

“提示”是阅读向您解释视觉格式语言的文档:developer.apple.com/library/ios/documentation/UserExperience/… UIView 和 NSLayoutConstraint 上的文档还告诉您在形成约束时如何处理所有约束. 【参考方案1】:

假设您有两个名为 view1 和 view2 的 UIViews -

[view1 addSubview:view2];

NSDictionary *views = @@"view2" : view2;
NSArray *horzConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[view2]|"
                                                                   options:0
                                                                   metrics:nil
                                                                     views:views];

NSArray *vertConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view2]|"
                                                                   options:0
                                                                   metrics:nil
                                                                     views:views];

[view1 addConstraints:horzConstraints];
[view1 addConstraints:vertConstraints];

view2.translatesAutoresizingMaskIntoConstraints = NO;

【讨论】:

以上是关于使用视觉格式语言约束 2 个视图的主要内容,如果未能解决你的问题,请参考以下文章

使用视觉格式语言的“宽度等于高度”约束

设置视觉格式语言时 iAutoLayout 崩溃

视觉格式语言并因特征而异

在 Auto Layout 的视觉格式语言中使用可选值

不能满足约束 - 视觉格式语言

ios自动布局视觉格式-对齐