我正在构建的部分屏幕包含一个包含n个视图的部分.我正在代码中生成这些视图 – 它们是简单的UIView子类.
我正在为此屏幕使用AutoLayout约束,我希望每个视图自动将其自身定位在其上方视图下方15px左右.
在Xcode中,可以创建一个spacing to nearest neighbor constraint,这似乎完全符合我的要求.
是否可以通过编程方式创建“最近邻居间距”约束?
解决方法
您可以创建约束字典和约束字符串并以编程方式应用它们.
将项目和键添加到字典是微不足道的,所以我不会处理它.只需记住约束系统中的每个视图都必须在字典中.
创建格式字符串是有趣的.大概你想在某些视图下添加你的视图,比如它有NSString键topView.格式字符串的第一部分看起来像
NSString *constraintBase = [NSString stringWithFormat:@"V:topView"];
NSString *constraintString = [constraintBase stringByAppendingString:[NSString stringWithFormat:@"-15-%@",viewDictionaryKey]];
最后像往常一样应用constraintString,一个构造的视觉约束格式字符串.
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:constraintString options:0 metrics:nil views:viewsToConstrain]];