You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:45:24