2012-06-10 61 views

回答

3

它们是将与您的笔尖文件中的实际按钮关联的占位符。

更新

如果要添加使用addConstraints:options:metrics:views:方法上图你试图约束(是否UIView该实例是在代码中创建或从笔尖加载)的代码约束,最后一个参数( views:)接受字典谁是你在UIConstraint的ascii艺术(button1,button2等)中提供的字典,值是你在代码中创建的实际视图或从其他地方获取实例(IBOutlet也许)。

您可以使用NSDictionaryOfVariableBindings宏来快速创建字典,该宏将接受可变数量的视图实例,并将它们与相同的占位符名称(如这些实例的名称)相关联。例如。

// This is a ASCII constraint: 
NSString *constraintAscii = @"|-[button1]-12-[button2]-|"; 

// Bound views for constraints: 
UIButton *button2 = ... // code to create button2 variable 
// let's say that button1 is actually an IBOutlet for instance variable 
// now we create the dictionary of views for our new constraint 
NSDictionary *views = NSDictionaryOfVariableBindings(button1, button2); 

// now we create the constraint using these variables 
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat: constraintAscii 
                   options: 0 
                   metrics: nil 
                   views: views]; 
+0

这些名字是如何设置的?我怎样才能设置他们的价值的实例不存在于nib文件,因为它们是用代码创建的? –

+0

感谢编辑(它解释了很多,并且帮助很大),但我仍然不明白字典的关键字的实际字符串来自哪里。他们总是等于变量的名称,如你的例子? –

+1

字典中的字符串由宏创建。当使用这个宏时 - 是的,它们来自变量的名称。 – Eimantas

相关问题