2016-04-04 58 views
0

經過一番搜索我已經開始放棄sizeToFit的UIButton時編程方式添加到UIStackView

我有一個iOS應用(SWIFT),要求用戶一系列的問題和答案。問題和答案從JSON文件下載。每頁總會有1個問題,但答案不盡相同。所以答案是UIButtons添加到在xib中創建的UIStackView。這是一個小問題。

如果我用多於1行創建了一個答案(即它有一個換行符),它將在UIButton.titleLabel中創建一個新行並展開UIButton以適合它。但是,如果答案很長並且跨越多於一行,則UIButton不會展開。我可以正確換行標籤換行,但是按鈕似乎並沒有意識到它是UIStackView中的寬度限制,因此假設它可以顯示1行文本並相應地創建它的高度 - 即使我稱之爲「可信」 sizeToFit()!

我假設有一個簡單的設置,例如我缺少的「contentWidth」。

P.S.我不想計算大小並手動設置按鈕的高度。我希望它能夠與旋轉一起工作,當然這也會調整寬度

+1

'preferredMaxLayoutWidth'可以解決你的問題。 – dasdom

+0

謝謝@dasdom並沒有解決它。更有趣的是'preferredMaxLayoutWidth'事實上完全被忽略了(即使像5這樣的常量被設置)。在我的StackView中設置「Baseline Relative」使得'preferredMaxLayoutWidth'被注意到,但是沒有做任何改變我的高度的操作。 將繼續尋找答案! –

回答

0

好吧,我從來沒有找到修復它的方法來讓Button正確調整到它自己的UILabel大小,它似乎經常看到文本能夠適合一個線和工作。

我做了克服了這個問題,用UILabel替換我的UIButton。 UILabel然後有addGestureRecognizer(UITapGestureRecognizer())和當然userInteractionEnabled = true

這不是我希望它的方式,但會保持我的客戶,直到下一次更新UIStackView!

相關問題