Ios 更改标签的字体而不更改大小

Ios 更改标签的字体而不更改大小,ios,xcode,swift,uifont,Ios,Xcode,Swift,Uifont,嘿,我想在不改变大小的情况下改变标签的字体,因为不同的设备有不同的大小 见下面的代码:- 这个代码可以工作,但正如我说的,我不想改变大小 QuotesLabel.font = UIFont(name: "optima", size: CGFloat(30) 以下是针对不同设备的不同尺寸的代码 if UIScreen.mainScreen().bounds.size.height == 480 { // iPhone 4 QuotesLabel.font = Q

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

这个代码可以工作,但正如我说的,我不想改变大小

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)
更新:

您可以通过以下方式创建和使用字体数组:

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"]
此函数将返回随机字体:

func getRandomFont()->UIFont{
    let int = Int(arc4random_uniform(UInt32(fonts.count)))
    let font = UIFont(name: fonts[int], size: 30)
    return font
  }
按按钮点击动作调用随机函数并更改文本字段字体:

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

非常感谢这一点,还有一件事,我们还可以制作一个字体数组,以便在人们每次点击按钮时显示不同的/随机的字体。只需向我展示三种字体的示例,例如helvetica、optima、arial和mt boldLet。对于大小,我应该添加相同的字体吗?您告诉我,是的,它可以工作,因为
getRandomFont()
返回UIFontLabel如果QuotesLabel不是类,则应以小写的“QuotesLabel”开头。