2016-10-31 68 views
0

垂直居中我有UITextView的一個擴展,它垂直集中在一個UITextView中的文本,我在發現以下SO回答:https://stackoverflow.com/a/38855122/4660602UITextView的文本不是初始視圖

我的UITextView住一個UITableViewCell內,問題是該函數似乎不適用於初始加載。它只適用於我重新加載tableView或滾動時。

我打電話給cellForRowAtIndexPath的方法,但我試過把它添加到我的自定義單元類awakeFromNibprepareForReuse,但沒有運氣。想知道是否有人有任何其他建議/解決方案。

編輯:

也忘了提,我用的tableView VC被嵌入的導航欄和TabBar。當我切換到tabBar中的新VC並返回時,UITextView文本錯誤地重新排列到頂部,即使它已居中。

謝謝!

回答

1

在視圖中調整代碼大小的正確位置是UIView.layoutSubviews。由於您的居中功能取決於邊界,因此您必須在layoutSubviews中調用它,否則邊界可能不正確(即它們與筆尖中的什麼匹配,而不是當前設備)。您可以在您的cellforRowAtIndexPath中調用setNeedsLayout來告訴視圖在您設置文本後更新其佈局。

+0

這解決了我的問題。謝謝! –

0

在iOS系統10,綁定的觀點沒有像以前那樣viewDidLoadawakeFromNib初始化,因此基於功能視圖的邊界不viewDidLoadawakeFromNib工作。 您應該在viewDidAppear中使用它,或者視圖的邊界已經被初始化。