字体大小更改部分页脚表视图

时间:2016-04-01 21:11:00

标签: ios swift uitableview ios-autolayout

我目前正在Swift中构建iOS应用程序,但我遇到了一些问题。我的设置视图是tableviewcontroller。它是一个分组的。我的表视图是动态的,字体是动态的。

我想与设置应用中的字体大小进行交互。

如果我的应用程序已在运行,则字体大小会发生变化,但布局会被破坏。 (从最小字体变为最大字体)

图片:Layout bug

如果我使用新的字体设置重启我的应用程序,则没有问题......

这是一个XCODE project example,你会看到这个错误。

您能帮我找一个解决方案吗?感谢。

3 个答案:

答案 0 :(得分:0)

更改字体大小后尝试调用

self.view.setNeedsLayout()

它在UIView中设置了一个标记,标记为需要更改布局。

您也可以尝试拨打

self.view.layoutIfNeeded()

Apple文档说:

  

使用此方法在绘制前强制子视图的布局。使用以根视图接收消息的视图,此方法从根开始布置视图子树。

希望能帮到你

答案 1 :(得分:0)

UIContentSizeCategoryDidChangeNotification正是您要找的。

根据文档:

  

当用户更改首选内容大小设置时发布。

     

此通知在值中发送   preferredContentSizeCategory属性更改。 userInfo字典   通知包含UIContentSizeCategoryNewValueKey键,   这反映了新的环境。

示例回调实现:

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

答案 2 :(得分:0)

最后,我发现这是一个iOS错误。我在Apple Apps中发现了同样的错误。

当您设置最小字体,退出应用程序并设置最大字体时,会发生错误。

感谢您的帮助。

Bug Settings App