在不改变大小的情况下改变标签的字体

change font of the label without changing the size

嘿,我想在不改变大小的情况下更改标签的字体,因为我对不同的设备有不同的大小 请参阅下面的代码:-

此代码有效,但正如我所说,我不想更改大小

QuotesLabel.font = UIFont(name: "optima", size: CGFloat(30)

这是针对不同设备的不同尺寸的代码

 if UIScreen.mainScreen().bounds.size.height == 480 {
        // iPhone 4
        QuotesLabel.font = QuotesLabel.font.fontWithSize(30)
    } else if UIScreen.mainScreen().bounds.size.height == 568 {
        // IPhone 5
        QuotesLabel.font = QuotesLabel.font.fontWithSize(30)
    } else if UIScreen.mainScreen().bounds.size.width == 375 {
        // iPhone 6
       QuotesLabel.font = QuotesLabel.font.fontWithSize(35)
    } else if UIScreen.mainScreen().bounds.size.width == 414 {
        // iPhone 6+
        QuotesLabel.font = QuotesLabel.font.fontWithSize(40)

    }

你可以这样分配自己的字体大小:

QuotesLabel.font = UIFont(name: "optima", size: QuotesLabel.font.pointSize)

更新:

您可以这样创建和使用字体数组:

let fontArr = ["helvetica", "optima", "arial"]   //Change this array as per your need
let int = Int(arc4random_uniform(UInt32(fontArr.count)))
QuotesLabel.font = UIFont(name: fontArr[int], size: QuotesLabel.font.pointSize)

使用此 UIFont 扩展:

extension UIFont{
  func fontWithName(name:String)->UIFont{
    return UIFont(name: name, size: self.pointSize)!
  }

然后像这样使用它:

QuotesLabel.font = QuotesLabel.font.fontWithName("Verdana"

更新:数组中的随机字体

定义一组你想要的字体:

let fonts = ["Verdana", "HoeflerText-Black", "Menlo-BoldItalic"]

这个函数会return随机字体:

func getRandomFont()->UIFont{
    let int = Int(arc4random_uniform(UInt32(fonts.count)))
    let font = UIFont(name: fonts[int], size: 30)
    return font
  }

在按钮上点击动作调用随机函数并更改 TextField 字体:

 @IBAction func testTapped(sender: UIButton) {
    QuotesLabel.font = getRandomFont()
  }