23

我正在使用 iOS 7 运行 XCode 5。我需要在 UITextView 布局之前动态更改其高度约束。我看到很多帖子说这可以通过从 IB 中的约束到源代码的出口连接来完成。我正在尝试从 IB 中的约束出口连接到所属类的头文件,但无法建立连接 - 当我拖过头文件时,IB 不会“突出显示”,就像在建立连接时一样从按钮等其他对象。

有没有人遇到过这个?非常感谢所有帮助。

4

5 回答 5

52

这是我这样做的照片。我正在控制从约束拖动到头文件。

在此处输入图像描述

在现实生活中,我更有可能控制拖动到实现文件中的匿名类别,因为我不希望 IBOutlet 属性公开。所以这里也有一张照片。抱歉,此屏幕截图未显示光标:它位于拉伸线的底端。

在此处输入图像描述

于 2014-03-01T04:24:20.217 回答
2

您可以通过以下方式进行插座连接:

  1. 打开助手编辑器,然后 ctrl+拖动你的文本视图到相应的头文件。您应该看到为 textview 创建的属性。

  2. 手动键入@property(nonatomic,retain)IBOutlet UITextField *yourTextField;。打开助手编辑器,从小空圈(属性左侧)拖动到视图控制器中的相应控件。

如果您仍然无法建立连接,请清理并保存您的项目,然后重试。

于 2014-02-28T04:24:18.650 回答
1

您是否尝试在 UIView 类中创建连接?看来您只能在与情节提要中的场景关联的 UIViewController 类中创建连接。

因此,如果您希望从视图本身执行此操作,您的解决方法可能是正确的。

于 2015-02-17T06:57:27.173 回答
1

我想我迟到了这个答案,但仍然值得写。我有一个类似的问题。我没有正确设置视图的文件所有者。您可以使用助手编辑器进行简单的测试。如果助手编辑器不允许您选择视图控制器的自动选择,则意味着您没有正确设置文件所有者。检查视图控制器是否与 .xib 文件具有相同的名称(通常是这种情况)。

这将让您连接所有 IBOutlets,包括约束。

于 2016-04-29T23:12:41.457 回答
0

好的,仍然无法连接到 IB 中的约束。但是,我通过将文本视图高度约束设置为 IB 中的占位符来解决该问题,并将其替换为在视图的 initWithCoder 中创建的 NSLayoutConstraint。我维护对已创建约束的引用并根据需要修改其“常量”属性。

我可能会坚持使用这种解决方法,但如果有人可以帮助我解决原始问题,我将不胜感激。

于 2014-03-01T04:02:27.923 回答