2015-10-04 80 views
2

我使用自定義UITableViewCell和定製的xibs。爲了支持我通過傾聽來實現UIContentSizeCategoryDidChangeNotification動態類型在viewDidLoad()UITableView不更新動態類型更改的標籤

func didChangeContentSizeCategory(notification: NSNotification) 
{ 
    // Dynamic Type preferences were updated. Reload UI. 

    myTableView.reloadData() 
} 

我定製xibs使用的字體描述的在Interface Builder:

enter image description here

即使該通知被觸發(與測試斷點)和myTableViewreloadData()方法被調用,它不更新標籤的內容以利用新值。

據我瞭解,這應該工作,沒有我做別的事情,是嗎?

回答

1

使用自動佈局和自動調整大小的單元格時,動態類型的自動支持在UITableView中可以使用。

因此,如果您沒有這樣做,可能需要在重新計算單元格的任何地方明確更新單元格的字體屬性,因爲reloadData()似乎沒有這樣做。

例如,在cellForRowAtIndexPath:調用返回你的面前:

cell.headline.font = UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline) 

因此,當UIContentSizeCategoryDidChangeNotification張貼,它會明確地觸發字體更新,應用程序運行時也是如此。

+0

即使'UILabel'設置爲使用IB的字體描述符,我是否需要這樣做? –

+0

給它一個機會 - 如果您在上面發佈了更多的代碼來進行調試,這也會很有幫助。 –

+0

它更不願在代碼上加倍,或者至少在IB中設計而不是通過代碼 –