我一直想弄清楚如何使用NSLayoutConstraint
的constraintWithItem方法创建一个NSLayoutConstraint
对象,该方法与下面的代码等效。如何在代码中创建与@“H:| -10- [view]”完全相同的NSLayoutConstraint对象?
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:"@H:|-10-[view]"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(view)];
NSLayoutConstraint *rightMarginConstraint = [constraints firstObject];
我已经试过代码如下图所示:
NSLayoutConstraint* rightMarginConstraints = [NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeLeading
relatedBy:NSLayoutRelationEqual
toItem:superview
attribute:NSLayoutAttributeLeft
multiplier:1.0f
constant:10.0f];
但它不会做了很多同样的事情,它是在控制台上不同的,当它打印出来。我想在控制台上输出一个约为"H:|-10-[view]"
的约束。
有谁知道如何创建一个iOS7和8的作品? (我发现有iOS 8的新属性选项,但我仍然支持iOS 7)
在此先感谢!
/////////编辑////////
实际产生的完全相同的约束上简单视图&上海华的代码的第二块。 然而,我在上TableViewCells问题,我得到如下结果:
这是我想要的,与代码生成类似的代码
<NSLayoutConstraint:0x7fc050f481c0 H:|-(10)-[UIView:0x7fc050f48070] (Names: '|':UITableViewCellContentView:0x7fc050f39310)>
的第二块的第一块代码产生约束类似以下的输出
<NSLayoutConstraint:0x7b6513d0 view:0x7b64cdf0.leading == UITableViewCellContentView:0x7b64cd10.left>
///编辑2 /// 我也越来越输出看起来甚至低于我用匹配的属性代码。
<NSLayoutConstraint:0x7d695c70 CustomBorderView:0x7d4cb0f0.right == UITableViewCellContentView:0x7d4cb010.right + 10>
///编辑3 ///
我想通了项目事项的顺序。我交换了constraintWithItem的参数:toItem:现在输出我想要的东西。谢谢!
它是做什么的,它打印到控制台是什么? – rdelmar 2014-10-06 21:19:07
向我们展示两者的打印日志。 – Tricertops 2014-10-06 21:19:56