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

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

【问题讨论】:

  • extension UILabel{ func font(size: CGFloat){ self.font = UIFont(descriptor: self.font.fontDescriptor, size: size) } }

标签: ios swift xcode cocoa-touch uilabel


【解决方案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 中工作。
                                  猜你喜欢
                                  • 1970-01-01
                                  • 2017-10-28
                                  • 2013-05-14
                                  • 2015-09-14
                                  • 1970-01-01
                                  • 2018-09-28
                                  • 2021-06-09
                                  • 1970-01-01
                                  • 1970-01-01
                                  相关资源
                                  最近更新 更多