2016-04-01 18 views
0

我目前正在Swift中構建iOS應用程序,並且出現了一些問題。我的設置視圖是一個tableviewcontroller。這是一個分組。我的表格視圖是動態的,字體是動態的。字體大小更改部分頁腳表視圖

我想與設置應用程序中字體大小的變化進行交互。

如果我的應用程序已經在運行,字體大小發生變化,但佈局剛剛打破。 (從最小到最大的字體改變)

圖片:Layout bug

如果我重新啓動我的新字體設置的應用程序,沒有問題......

這裏是一個XCODE project example,你會看到這個錯誤。

你能幫我找到一個解決方案嗎?謝謝。

回答

0

最後,我發現這是一個iOS的錯誤。我在Apple應用程序中發現了同樣的錯誤。

當您設置最小字體,退出應用程序並設置最大的字體時,會發生錯誤。

感謝您的幫助。

Bug Settings App

0

後更改字體大小嚐試調用

self.view.setNeedsLayout()

它在其標記爲需要佈局變化的UIView設置一個標誌。你

也可以嘗試撥打

self.view.layoutIfNeeded()

蘋果的文件說:

使用此方法強制子視圖的佈局圖前。使用接收消息作爲根視圖的視圖,此方法將從根開始的視圖子樹佈局。

希望能夠幫助您

+0

我的視圖控制器是模態的。如果我關閉它並打開一個新的問題,問題仍然存在:/ 而我的表視圖是完全動態的。我會在幾分鐘內嘗試你的解決方案btw –

+0

不幸的是,它不起作用。我沒有其他表格視圖,沒有部分頁腳或標題 –

0

UIContentSizeCategoryDidChangeNotification是你在找什麼。

每文檔:

當用戶更改首選內容大小設置發佈。

當 preferredContentSizeCategory屬性中的值更改時發送此通知。通知的用戶信息詞典 包含反映新設置的UIContentSizeCategoryNewValueKey鍵 。

例回調實現:

func handleContentSizeCategoryDidChangeNotification(notification: NSNotification) { 
     self.questionLabel.font = UIFont.preferredFontForTextStyle(UIFontTextStyleBody) 
    } 
+0

「如果我的應用程序已經運行,字體大小更改」 因此,我已經在使用它。 –