自动布局:如何动态添加元素

时间:2013-06-02 14:51:59

标签: cocoa-touch autolayout nsautolayout

我需要在代码中向NSView添加未定义数量的NSButton。问题是我不能使用constraintsWithVisualFormat:,因为我不知道NSButton的名称以及我拥有的按钮数量。有人有解决方案吗?谢谢!

1 个答案:

答案 0 :(得分:0)

使用constraintsWithVisualFormat:时,如果使用NSDictionaryOfVariableBindings创建视图字典,则需要知道仅指向NSButtons 的变量的名称。您可以使用您喜欢的任何键轻松构建自己的字典。

如果您的按钮存储在数组中,您可以遍历它们并在每个按钮之间创建约束:

for ( int i = 1 ; i < buttonArray.count ; i++ ) {
    NSDictionary* views = @{ @"buttonOne":buttonArray[i-1] , @"buttonTwo":buttonArray[i] } ;
    NSArray* constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"[buttonOne]-[buttonTwo]"  options:0  metrics:nil  views:views] ;
    // Use the constraints.
}