我正在使用iOS 7和XCode 5。在布局之前,我需要动态更改UITextView的高度约束。我看到很多帖子说可以通过从IB中的约束创建一个outlet连接到源代码来实现。我试图从IB中的约束出口连接到所属类的头文件,但无法进行连接 - IB不会像从其他对象(如按钮等)创建连接时一样“突出显示”。有人遇到过这种情况吗?非常感谢任何帮助。
这是我在进行的操作图片。我正在从约束条件中控制拖拽到头文件。
在实际操作中,我更可能控制拖动到实现文件中的匿名类别,因为我不希望IBOutlet属性公开。所以这里也有一张图片。很抱歉,这张截图没有显示光标:它在拉伸线的底端。
打开助手编辑器,然后使用ctrl+拖动您的textview到相应的头文件中。您应该会看到为textview创建的属性。
手动键入@property(nonatomic,retain)IBOutlet UITextField *yourTextField;
。打开助手编辑器,从属性左侧的空白圆圈拖动到视图控制器中的相应控件。
如果您仍然无法建立连接,请清理并保存项目,然后重试。
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *yourTextViewHeight;
。然后,您可以将此处的空圆拖动到文档大纲视图中的特定约束上。 - motox你是否试图在UIView类中创建连接?似乎你只能在与Storyboard中的场景相关联的UIViewController类中创建连接。
因此,如果你希望从视图本身执行操作,则你的解决方法可能是正确的。
好的,仍然无法连接到IB中的约束。但是,我通过将文本视图高度约束作为IB中的占位符来解决了这个问题,我用在视图的initWithCoder中创建的NSLayoutConstraint替换它。我保留对已创建约束的引用,并根据需要修改其“constant”属性。
我可能会坚持使用这个解决方法,但如果有人能帮助我解决原始问题,那将不胜感激。