更改UIImagePickerController标签的字体

时间:2017-10-26 16:38:43

标签: ios swift ios9 swift4

我的目标是控制UIImagePickerController中所有文本的字体。

我之前使用了UILabel扩展和外观代理来控制所有UILabel的字体。

extension UILabel {

    var defaultFontName : String {
        get { return self.font.fontName }
        set { self.font = UIFont(name: newValue, size: self.font.pointSize) }
}

我在AppDelegate中设置了默认字体。

UILabel.appearance().defaultFontName = kDefaultFontName

以前,这扩展到我在项目中以编程方式创建的UIImagePickerController,其中所有单元格和图像标签都采用默认字体。更新Xcode 9和Swift 4后,这不起作用。

我已经尝试专门针对UIImagePickerControllerClass中包含的UILabel调整外观代理,并为默认字体提供特定的点大小但没有成功。

为什么这不再起作用?

如何访问UIImagePickerController中的字体?

1 个答案:

答案 0 :(得分:0)

您不应该使用此类技巧来改变系统行为。因为即使你使这个hacky技巧工作,它肯定会在iOS 12中被打破。所以现在,它不起作用,因为.appearence。系统控制器(如图像选择器)是单独创建的,不使用外观来创建自己的。自从ios11。但是在ios10中,在docs中有类似的警告