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

Posted

技术标签:

【中文标题】如何在 Swift 中更改 UILabel 的字体大小?【英文标题】:How do I change the font size of a UILabel in Swift? 【发布时间】:2014-08-12 23:02:17 【问题描述】:

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

【问题讨论】:

extension UILabel func font(size: CGFloat) self.font = UIFont(descriptor: self.font.fontDescriptor, size: size) 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

你可以这样做:

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)

【讨论】:

这实际上改变了字体的 pointSize 属性。但是,在重绘标签之前,pointSize 会立即重置为 17.0。所以除了在屏幕上实际看到不同的字体大小之外,还有更多的事情要做。 您是否在任何地方都将字体设置为 17?故事板? 我在 iPhone 5 上运行了它,您的代码可以正常工作。一定是模拟器的bug。 这很有趣。不过,看到另一个错误并不感到惊讶。很高兴它正在工作 当我用谷歌搜索而不是仅仅查找它时,文档存在严重问题,因为我知道它会更快。【参考方案3】:

swift 4:

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

如果您想在项目的所有视图中设置标签字体,请在appDelegate>didFinishLaunch 中尝试此操作: UILabel.appearance().font = UIFont("your font name", size: 15)

【讨论】:

【参考方案4】:

斯威夫特 4.2

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

【讨论】:

【参考方案5】:

以编程方式

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

【讨论】:

【参考方案6】:

Apple 无缘无故地改变事物: 斯威夫特 4+:

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

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

【讨论】:

【参考方案7】:

您可以使用扩展程序。

import UIKit

extension UILabel 

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

使用它:

self.myLabel.fontSize(100)

【讨论】:

【参考方案8】:

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

其实,改变storyboard上的其他字体属性也很容易,比如样式、字体系列等。

【讨论】:

【参考方案9】:

Swift-3.1

label.font = UIFont.systemFont(ofSize: 12)

【讨论】:

【参考方案10】:

SWIFT 3.1

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

【讨论】:

这是不正确的,并且不是使用 Cocoa 命名约定编写的。【参考方案11】:

斯威夫特 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()
        
    

【讨论】:

【参考方案12】:

斯威夫特 3

label.font.withSize(16)

【讨论】:

【参考方案13】:

我认为最好的方法是:如果保留已分配给 UILabel 的相同字体:

(使用 Swift)

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

(使用 Swift 3)

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

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

【讨论】:

【参考方案14】:

在 swift3 中, 假设您的 UILable 名称是 myLable 并且您想更改其字体大小 这样做

myLable.font = UIFont.systemFont(ofSize: 10)

【讨论】:

【参考方案15】:

再次在 Swift 3 中...

myLabel.font = myLabel.font.withSize(18)

【讨论】:

【参考方案16】:

在 Swift 3 中:

label = UIFont.systemFont(ofSize: 20)

并使用系统预设尺寸,例如:

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

【讨论】:

我想你忘记了 label.font【参考方案17】:

我将fontWithSize 用于带有浅色系统字体的标签,但它会变回正常的系统字体。

如果你想保留字体的特性,最好包含描述符。

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

【讨论】:

【参考方案18】:

我们可以根据我们的要求设置字体,例如,

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

【讨论】:

【参考方案19】:

你也可以这样给予

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

【讨论】:

【参考方案20】:
label.font = UIFont.systemFontOfSize(20)

【讨论】:

label.font = UIFont.systemFont(ofSize: 20) // in swift 3 此解决方案不适用于自定义字体。它总是返回系统字体。【参考方案21】:

如果您只想更改字体大小,我创建此扩展程序

// Add extension

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


// Use

myLabel.setSizeFont(60)

【讨论】:

这对我有帮助。我改变了字体大小,它在 swift 4 中工作。

以上是关于如何在 Swift 中更改 UILabel 的字体大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 默认 UILabel 字体和大小

根据自动布局更改 UILabel 中的字体大小(swift)

禁用 UILabel、UIText 等的自动调整字体。在 iOS/Swift 中?

Swift font.withSize 不会改变 UILabel 上的字体大小

Swift:如何让 UILabel 从另一个 UIlabel 继承字体大小?

如何在 iOS Swift4 中滚动时增加/减少 UILabel 字体大小以及宽度和高度