如何在Swift中更改UILabel的字体大小?


246

label.font.pointSize 是只读的,所以我不确定如何更改它。


扩展UILabel {func font(size:CGFloat){self.font = UIFont(descriptor:self.font.fontDescriptor,size:size)}}
Mohammad Razipour

Answers:


589

您可以这样做:

label.font = UIFont(name: label.font.fontName, size: 20)

或像这样:

label.font = label.font.withSize(20)

这将使用相同的字体。20可以是您想要的任何大小。

注意:后一个选项将覆盖当前字体粗细,regular因此,如果要保留字体粗细,请使用第一个选项。

Swift 3更新

label.font = label.font.withSize(20)

Swift 4更新

label.font = label.font.withSize(20)

要么

label.font = UIFont(name:"fontname", size: 20.0)

如果您使用系统字体

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)

5
实际上确实会更改pointSize属性的字体。但是,在重绘标签之前,pointSize会立即重置为17.0。因此,要在屏幕上实际看到不同的字体大小还不止如此。
2014年

1
您在任何地方都将字体设置为17吗?故事板?
康纳2014年

1
我在iPhone 5上运行了它,您的代码正常运行。它一定是模拟器中的错误。
2014年

那很有意思。看到另一个错误并不感到惊讶。很高兴它在起作用
Connor 2014年

5
当我只是在Google上搜索而不是仅仅查找它时,文档中存在严重问题,因为我知道这样做会更快。
安德鲁·普鲁默

72

我认为最好的方法是-如果保留已经分配给该字体的相同字体,那就是UILabel

(使用Swift)

label.font = label.font.fontWithSize(20)

(使用Swift 3)

label.font = label.font.withSize(20)

理想情况下,我将在viewDidLayoutSubviews方法中进行设置,因为它不需要在每次视图出现时都进行更改。


39
label.font = UIFont.systemFontOfSize(20)

5
label.font = UIFont.systemFont(ofSize:20)//迅速3
Kang Byul

此解决方案不适用于自定义字体。它将始终返回系统字体。
Awais Fayyaz

24

我们可以根据需要设置字体,

label.font = UIFont(name: "Avenir-Light", size: 15.0)
label.font = UIFont.boldSystemFontOfSize(15)
label.font = UIFont.italicSystemFontOfSize(15)
label.font = UIFont.systemFontOfSize(17)

8

如果您只想更改字体大小,请创建此扩展名

// Add extension

extension UILabel {
    func setSizeFont (sizeFont: Double) {
        self.font =  UIFont(name: self.font.fontName, size: sizeFont)!
        self.sizeToFit()
    }
}

// Use

myLabel.setSizeFont(60)

这对我有帮助。我改变了字体大小,它在迅速4.工作
R.磨憨

6

你也可以这样给

labelName.font = UIFont(name: "systemFont", size: 30)




2

您可以使用扩展名。

import UIKit

extension UILabel {

    func sizeFont(_ size: CGFloat) {
        self.font = self.font.withSize(size)
    }
}

要使用它:

self.myLabel.fontSize(100)

2

苹果无缘无故地改变着一切:Swift 4+:

myLabel.font = UIFont.systemFont(ofSize: 16)

感谢苹果浪费人们的时间来弄清楚他们需要使用什么“字体大小”方法!


2

以编程方式

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)

label.font = UIFont(name:"Helvetica Neue", size: 20.0)//Set your font name here

通过故事板

要显示多行设置为0(零),这将在标签中显示多行。

如果只显示2行,请设置2。

在此处输入图片说明

如果要设置标签的最小字体大小,请单击“自动收缩”,然后选择“最小字体大小”选项

见下面的屏幕

在此处输入图片说明

此处设置最小字体

EX:9(在此图像中)

如果您的标签当时有更多文字,您的标签文字将缩小到9

在此处输入图片说明



1

我曾经使用fontWithSize带有浅色系统字体的标签,但是它会变回普通的系统字体。

如果要保留字体的特征,最好包括描述符。

label.font = UIFont(descriptor: label.font.fontDescriptor(), size: 16.0)


1

在Swift 3中:

label = UIFont.systemFont(ofSize: 20)

并使用系统预设大小,例如:

label = UIFont.systemFont(ofSize: UIFont.smallSystemFontSize)

我认为您忘记了label.font
伊桑·帕克


0

斯威夫特3.1

import UIKit

extension UILabel {
    var fontSize: CGFloat {
        get {
            return self.font.pointSize
        }
        set {
            self.font =  UIFont(name: self.font.fontName, size: newValue)!
            self.sizeToFit()
        }
    }
}

0

swift 4:

label.font = UIFont("your font name", size: 15)

另外,如果您想在项目的所有视图中设置标签字体,请尝试以下方法appDelegate>didFinishLaunchUILabel.appearance().font = UIFont("your font name", size: 15)


0

如果您想使用带有粗体选项的自定义字体:

nameLabel.font = UIFont(name: "GillSans-Bold", size: 27)

-1

SWIFT 3.1

Label.font = Label.font.withSize(NewValue)


这是不正确的,并且不是使用可可命名约定编写的。
Womble

-1

从情节提要中更改字体大小非常简单方便,您可以立即看到更改的结果。

实际上,在情节提要上更改其他字体属性也很容易,例如样式,字体系列等。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.