我有一個UIButton的自定義子類,我想在多個項目中重用,其中一些使用界面生成器和故事板,其中一些可能不會。它涉及在幾個地方設置按鈕的框架。支持AutoLayout和傳統佈局
如果我在初始化添加
self.translatesAutoresizingMaskIntoConstraints = YES;
,一切看起來和作品的權利,但是,我得到:
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
Will attempt to recover by breaking constraint…etc
登錄到控制檯。但是,如果我設置
self.translatesAutoresizingMaskIntoConstraints = NO;
沒有按鈕大小作品和按鈕被徹底打破。
有沒有辦法阻止錯誤,因爲它似乎降級到正確的東西,或者我可以以某種方式手動刪除違規約束?
我已經試過按鈕初始化後傾倒約束,但是,它似乎並沒有包含約束AutoLayout最終打破。
編輯:下面是一個示例項目,然後我的按鈕代碼的鏈接。它在自動佈局在故事板中關閉時效果很好,但是,當自動佈局打開時,按鈕似乎位於原點(似乎是因爲當調用initWithCoder時,按鈕沒有超級視圖或任何位置信息)。
http://www.kudit.com/dump/KFB.zip
http://www.kudit.com/dump/KuditConfirmButton.zip
我還沒有找到一種方法來做到這一點,而不是手動設置'翻譯...'屬性取決於使用的佈局的類型。你如何添加你的按鈕 - 作爲xib/storyboard或代碼中的一部分? – jrturton 2013-04-04 06:29:29
作爲故事板的一部分。我想設計這個類,以便我可以在IB中替換類,並使用IB和運行時屬性進行自定義,以製作簡單的可重用的插入式解決方案。 – Gujamin 2013-04-04 15:27:48
你可以編輯問題來顯示你的一些代碼嗎?特別是任何你創建約束的代碼。我假設你在按鈕內部創建約束?您可以在非自動佈局視圖內放置自動佈局視圖,反之亦然,但如果嘗試限制自動視圖視圖,則會出現問題。從現在的情況來看,從你的問題來看你不清楚你正在做什麼。 – jrturton 2013-04-04 16:05:51