Ios 使用不同字体的UIButton文本标签

Ios 使用不同字体的UIButton文本标签,ios,uibutton,Ios,Uibutton,有没有办法在文本标签中使用两种不同字体大小的UIButton?天生的 我不想在顶部有UILabel。只需更改标题的字体大小即可 斯威夫特: button.titleLabel.font=UIFont.systemFontOfSize(FONTSIZE)您可以在interface builder中执行此操作。此GIF将向您展示如何增加文本一部分的大小,并可能更改其字体 要在代码中执行此操作,请执行以下操作: NSString *fullString = @"This bit's plain. T

有没有办法在文本标签中使用两种不同字体大小的UIButton?天生的


我不想在顶部有UILabel。

只需更改标题的字体大小即可

斯威夫特:
button.titleLabel.font=UIFont.systemFontOfSize(FONTSIZE)

您可以在interface builder中执行此操作。此GIF将向您展示如何增加文本一部分的大小,并可能更改其字体

要在代码中执行此操作,请执行以下操作:

NSString *fullString = @"This bit's plain. This bit's bigger";
NSRange rangeOfPlainBit = [fullString rangeOfString:@"This bit's plain."];
NSRange rangeOfBigBit = [fullString rangeOfString:@"This bit's bigger"];

NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:fullString];
[attributedText setAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"My-font" size:15.0],
                                NSForegroundColorAttributeName: [UIColor whiteColor]}
                        range:rangeOfPlainBit];
[attributedText setAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"My-font" size:25.0],
                                NSForegroundColorAttributeName: [UIColor whiteColor]}
                        range:rangeOfBigBit];

[self.myButton setAttributedTitle:attributedText forState:UIControlStateNormal];

SWIFT 3

 func customizeButtonFont(fullText: String, mainText: String, creditsText: String, button: UIButton) {
        let fontBig = UIFont(name:"SFUIDisplay-Medium", size: 16.0)
        let fontSmall = UIFont(name:"SFUIDisplay-Light", size: 14.0)
        let attributedString = NSMutableAttributedString(string: fullText, attributes: nil)

        let bigRange = (attributedString.string as NSString).range(of: mainText)
        let creditsRange = (attributedString.string as NSString).range(of: creditsText)
        attributedString.setAttributes([NSAttributedStringKey.font: fontBig, NSAttributedStringKey.foregroundColor: UIColor.white], range: bigRange)
        attributedString.setAttributes([NSAttributedStringKey.font: fontSmall, NSAttributedStringKey.foregroundColor: UIColor.white], range: creditsRange)

        button.setAttributedTitle(attributedString, for: .normal)
    }

是的,有一种方法可以自然完成。哎呀,我误解了。同一按钮上的不同字体需要使用NSAttributedString。谢谢,伙计。没有看到。如果您使用IB,您应该能够选择所需的文本并进行更改。您可以选择多行、长段落的单独部分或单个字母。如果你不能,你可以尝试使用一种类似于我上面提到的方法的代码,通过这种方法,你可以获取你想要更改的文本位。不过,正如你所说,我可以选择我想改变的路线。但是,当我从默认状态更改为选定状态时,即使我设置了文本和颜色,也不会显示任何内容。这一定是我的代码中缺少的东西。出于兴趣,你为什么选择状态配置为selected?因为我想在默认和选中时使用不同的文本颜色。我知道我可以在代码中完成所有这些,但我基本上是在发IB功能的短信。我的理念是,我写的代码越少,出现bug的机会就越少。谢谢Svitlana