iOS 修改字体大小

最近公司有个老项目,需要修改字体大小。遇到一个问题:在设置中修改字体大小后,返回我的页面,字体大小并没有改。

刚开始一直想着怎么去刷新页面,网上也看了很多,都没有切中要害。

后来,突然想到,不用去刷新页面,而是去重新设置一下字体大小。

设置中修改字体大小后,发出通知

NotificationCenter.default.post(name: NSNotification.Name.init("FontChangeNotification"), object: nil)

在我的页面,注册通知

NotificationCenter.default.addObserver(self, selector: #selector(didReceivedFontChangeNotification), name: NSNotification.Name("FontChangeNotification"), object: nil)

移除:

deinit {
        NotificationCenter.default.removeObserver(self, name: NSNotification.Name("FontChangeNotification"), object: nil)
}

修改字体大小

@objc func didReceivedFontChangeNotification() {
        nameLabel.font = .systemFont(ofSize: CGFloat(18 * getFontScale()))
        levelLabel.font = .systemFont(ofSize: CGFloat(12 * getFontScale()))
        levelLeftTopLabel.font = .systemFont(ofSize: CGFloat(20 * getFontScale()))
        level_rightTop_label.font = .systemFont(ofSize: CGFloat(18 * getFontScale()))
        level_left_bottom_label.font = .systemFont(ofSize: CGFloat(12 * getFontScale()))
        empiricValueLabel.font = .systemFont(ofSize: CGFloat(13 * getFontScale()))
        headerLabel1.font = .systemFont(ofSize: CGFloat(15 * getFontScale()))
        headerLabel2.font = .systemFont(ofSize: CGFloat(15 * getFontScale()))
        collectionView1.reloadData()
        collectionView2.reloadData()
        logoutBtn.titleLabel?.font = .systemFont(ofSize: CGFloat(15 * getFontScale()))
    }

 

posted @ 2021-01-20 10:25  侯文超  阅读(522)  评论(0编辑  收藏  举报