簡體   English   中英

無法與IB中的約束進行出口連接

[英]Unable to make outlet connection to a constraint in IB

我正在使用iOS 7運行XCode 5.我需要在布局之前動態更改UITextView的高度約束。 我看過許多帖子,說明這可以通過從IB中的約束到源代碼建立出口連接來完成。 我試圖從IB中的約束出口連接到擁有類的頭文件,但無法建立連接 - 當我拖動頭文件時IB不會“突出顯示”,就像在建立連接時一樣從其他對象,如按鈕等

有沒有人遇到過這個? 非常感謝所有幫助。

這是我做這件事的照片。 我控制 - 從約束拖動到頭文件。

在此輸入圖像描述

在現實生活中,我更有可能控制 - 拖動到實現文件中的匿名類別,因為我不希望IBOutlet屬性是公共的。 所以這里也是一張照片。 抱歉,此屏幕截圖未顯示光標:它位於拉伸線的底端。

在此輸入圖像描述

您可以通過以下方式建立出口連接:

  1. 打開助理編輯器,然后按住Ctrl鍵並將文本視圖拖動到相應的頭文件中。 您應該看到為textview創建的屬性。

  2. 手動輸入@property(nonatomic,retain)IBOutlet UITextField *yourTextField; 。打開助手編輯器,從小空圓圈(左側到屬性)拖動到視圖控制器中的相應控件。

如果仍無法建立連接,請清理,保存項目,然后重試。

您是否嘗試在UIView類中創建連接? 看來你只能在UIViewController類中創建一個與Storyboard中的那個Scene相關聯的連接。

因此,如果您希望從View本身進行操作,那么您的解決方法可能是正確的。

我覺得這個答案我遲到了,但是寫它仍然值得。 我遇到了類似的問題。 我沒有正確設置視圖的文件所有者。 您可以使用助理編輯器進行簡單測試。 如果助理編輯器不允許您選擇視圖控制器的自動選擇,則表示您沒有正確設置文件所有者。 檢查viewcontroller是否具有.xib文件的相同名稱(通常是這種情況)。

這將允許您連接所有IBOutlet,包括約束。

好的,仍然無法連接IB中的約束。 但是,我通過使文本視圖高度約束成為IB中的占位符來解決此問題,我將替換為我在視圖的initWithCoder中創建的NSLayoutConstraint。 我保持對創建的約束的引用,並根據需要修改其“常量”屬性。

我可能會堅持使用這種解決方法,但如果有人能幫助我解決原始問題,我將不勝感激。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM