Swift中font.withSize无法修改UILabel字体大小问题求助
问题分析与解决
嘿,我一眼就揪出问题所在啦!你遇到的核心问题是对font.withSize(_:)这个方法的特性理解有误——它不会直接修改原UILabel的font属性,而是返回一个全新的UIFont实例。你只是调用了这个方法,但没把返回的新字体赋值给label的font,所以模拟器里字体大小自然没变化~
修正后的完整代码
只需要把调用方法的语句改成赋值操作,再顺便调整下label的高度(不然80号字会显示不全),就能看到效果了:
import UIKit import PlaygroundSupport class MyViewController : UIViewController { override func loadView() { let view = UIView() view.backgroundColor = .white let label = UILabel() // 关键修正:将返回的新字体赋值给label.font label.font = label.font.withSize(80) label.frame = CGRect(x: 150, y: 200, width: 200, height: 200) label.text = "Hello Mom!" label.textColor = .black view.addSubview(label) self.view = view } } // 别忘了添加这行让Playground加载视图 PlaygroundPage.current.liveView = MyViewController()
额外说明
withSize(_:)是一个不可变方法:它基于当前字体创建一个新的指定大小的字体对象,完全不会改变原有的font对象,所以必须把结果赋值回label.font才能生效。- 你原来设置的label高度只有20,80号字根本显示不下,我顺手把height改成200了,这样文字能完整展示出来~
内容的提问来源于stack exchange,提问作者Chewie The Chorkie
相关产品推荐
相关产品推荐

