我問過的問題純粹是使用自動佈局,我不想根據文本寬度手動設置幀。如何根據標題標籤文本更改增加/減少UIButton寬度?
我知道的變化內容擁抱優先,我已經使用了相同的一個標籤和一個按鈕,它工作正常標籤而不是按鈕,任何人都可以幫助
我問過的問題純粹是使用自動佈局,我不想根據文本寬度手動設置幀。如何根據標題標籤文本更改增加/減少UIButton寬度?
我知道的變化內容擁抱優先,我已經使用了相同的一個標籤和一個按鈕,它工作正常標籤而不是按鈕,任何人都可以幫助
如果你想做到這一點,你可以創建自定義視圖:採取 - UIView
並將其級別更改爲UIButton
並添加UILabel
並應用所有必需的約束。 有了這一切設置,你可以實現願望的用戶界面。 請試試這個如果你想實現這樣的。
如果你想根據標籤文本改變按鈕的寬度,
1.dont固定標籤寬度
2.Now,在標籤寬度即equalwidths取決於按鈕的寬度。
按鈕已經將它的「內在內容寬度」,以適應其標題。
如果沒有其他約束覆蓋內在內容寬度,則該按鈕將是該內在寬度,這正是您想要的。演示:
這是我的故事板輪廓:
我設置爲「左」(而不是「填充」)水平疊層視圖的對齊所以它不會拉伸第一行以填充屏幕寬度。
如果您的按鈕的內在寬度爲而不是,那麼您有更高優先級(可能優先級爲1000)的約束將其強制爲其他寬度。
您可以嘗試強制它始終保持其內容寬度,方法是將內容擁抱優先級和其內容壓縮優先級設置爲1000。
如果您將兩個優先級都設置爲1000,並且您有任何其他必需的約束可阻止該按鈕成爲其固有大小,那麼您將在運行時的調試日誌中收到錯誤消息,告訴您存在衝突(不可滿足的)約束。這些消息將包含完整的約束條件,因此您可以嘗試追蹤您不想要的約束條件。
感謝@rob,我有一些問題: 限制你到按鈕給出什麼?有沒有依賴堆棧視圖? –
我沒有對按鈕設置任何約束。頂層(垂直)堆疊視圖具有約束到上海華的頂部,導致,和後緣。文檔大綱顯示了我創建的每個約束。 –
如果我不想使用堆棧視圖,該怎麼辦? –