如何在 iPhone/iPad 的 UILabel上设置粗体和斜体? 我搜索了论坛,但是没有任何帮助。有人能帮助我吗?
UILabel
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
有一个字体名称的列表,您可以设置的地方“ fontWithName”属性。链接是 给你
@ 流浪汉看看这个..。
myLabel.font = [UIFont boldSystemFontOfSize:16.0f] myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
在你想要的时间使用以上任何一个
我最近写了一篇关于 UIFont API 的限制以及如何解决它的博客文章。 你可以在这里的一个 href = “ http://ecliptesource.com/blogs/2012/07/26/uifont-from-a-css-Definition/”rel = “ nofollow”> < strong > 上看到它
通过我在那里提供的代码,您可以很容易地获得所需的 UIFont:
UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];
然后将其设置为 UILabel (或其他类型) : myLabel.font = myFont;
myLabel.font = myFont;
我有同样的问题,需要同时应用粗体和斜体的标签和按钮。您可以简单地使用以下代码来实现这一效果:
myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10]; btn.titleLabel.font = [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];
你也可以使用这个来做粗体的标签/按钮字体
正如在这些答案中已经提到的,你只需要正确的字体名称。我发现 IOSFonts.com是最有用的资源,知道确切地使用什么名称。
使用 iOS7系统默认字体,如果你想保持系统默认字体,你将使用 helvetica neue 粗体。
[titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];
或者你可以简单地称之为:
[titleText setFont:[UIFont boldSystemFontOfSize:16.0]];
不要尝试使用字体名称。使用字体描述符你不需要任何名称:
UILabel * label = [[UILabel alloc] init]; // use your label object instead of this UIFontDescriptor * fontD = [label.font.fontDescriptor fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold | UIFontDescriptorTraitItalic]; label.font = [UIFont fontWithDescriptor:fontD size:0];
size:0的意思是“保持原尺寸”
size:0
与 Swift 一起尝试以下扩展:
extension UIFont { func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont { let descriptor = self.fontDescriptor() .fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits(traits)) return UIFont(descriptor: descriptor, size: 0) } func boldItalic() -> UIFont { return withTraits(.TraitBold, .TraitItalic) } }
那么你可以这样使用它:
myLabel.font = myLabel.font.boldItalic()
或者甚至可以添加额外的特征,如浓缩:
myLabel.font = myLabel.font.withTraits(.TraitCondensed, .TraitBold, .TraitItalic)
extension UIFont { var bold: UIFont { return with(traits: .traitBold) } // bold var italic: UIFont { return with(traits: .traitItalic) } // italic var boldItalic: UIFont { return with(traits: [.traitBold, .traitItalic]) } // boldItalic func with(traits: UIFontDescriptorSymbolicTraits) -> UIFont { guard let descriptor = self.fontDescriptor.withSymbolicTraits(traits) else { return self } // guard return UIFont(descriptor: descriptor, size: 0) } // with(traits:) } // extension
使用方法如下:
myLabel.font = myLabel.font.bold
或者
myLabel.font = myLabel.font.italic
myLabel.font = myLabel.font.with(traits: [ .traitBold, .traitCondensed ])
extension UIFont { var bold: UIFont { return with(.traitBold) } var italic: UIFont { return with(.traitItalic) } var boldItalic: UIFont { return with([.traitBold, .traitItalic]) } func with(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont { guard let descriptor = self.fontDescriptor.withSymbolicTraits(UIFontDescriptor.SymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits)) else { return self } return UIFont(descriptor: descriptor, size: 0) } func without(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont { guard let descriptor = self.fontDescriptor.withSymbolicTraits(self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptor.SymbolicTraits(traits))) else { return self } return UIFont(descriptor: descriptor, size: 0) } }
您可以设置任何字体样式,家庭,大小的标签,通过点击字母“ T”在 字体字段。
这很简单,这是密码。
[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];
这个能帮你。
Swift 3
大胆:
let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)
斜体:
let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)
我改变了 Maksymilian Wojakowski 的反应 你可以在哪里添加或删除一个特性
extension UIFont { func withTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont { let descriptor = self.fontDescriptor .withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits)) return UIFont(descriptor: descriptor!, size: 0) } func withoutTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont { let descriptor = self.fontDescriptor .withSymbolicTraits( self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptorSymbolicTraits(traits))) return UIFont(descriptor: descriptor!, size: 0) } func bold() -> UIFont { return withTraits( .traitBold) } func italic() -> UIFont { return withTraits(.traitItalic) } func noItalic() -> UIFont { return withoutTraits(.traitItalic) } func noBold() -> UIFont { return withoutTraits(.traitBold) } }
例子
label.font = label.font.italic().bold()
它在重用单元格时非常有用,并且您希望删除在前一个单元格中的标签上使用的斜体
更新 Maksymilian Wojakowski对迅捷3的绝妙回答
extension UIFont { func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont? { guard let descriptorL = self.fontDescriptor.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits)) else{ return nil } return UIFont(descriptor: descriptorL, size: 0) } func boldItalic() -> UIFont? { return withTraits(traits: .traitBold, .traitItalic) } }
示例粗体文字:
UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)]; UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]]; [titleBold setFont:myBoldFont];
斜体文本示例:
UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)]; UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]]; [subTitleItalic setFont:myItalicFont];
很多时候,粗体文本是在另一个层次上以信息架构的方式看待的,因此在一行中没有粗体和规则,所以您可以将它分成两个标签/textView,一个规则和粗体斜体。并使用编辑器选择字体样式。
尽管@tolbard 提供的答案令人惊讶,而且很有效!
我觉得为一行代码就可以实现的东西创建一个扩展,将是一个过度杀伤。
通过使用 UIFontDescriptor设置字体属性,你可以为 label中的同一文本设置 大胆和 斜体样式,如下面使用 Swift 4.0的例子所示:
UIFontDescriptor
label
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
其他选择包括:
traitLooseLeading traitTightLeading traitUIOptimized traitVertical traitMonoSpace traitCondensed traitExpanded
想了解更多关于这些象征性特征的信息吗
用 Swift 5
风格 = 粗体
label.font = UIFont(name:"HelveticaNeue-Bold", size: 15.0)
款式 = 中等
label.font = UIFont(name:"HelveticaNeue-Medium", size: 15.0)
风格 = 苗条
label.font = UIFont(name:"HelveticaNeue-Thin", size: 15.0)
我只是想说,
UIFont.systemFont(ofSize: 16, weight: UIFont.Weight.bold) UIFont.boldSystemFont(ofSize: 16)
他们有不同的结果..。
更新为 Swift 5和尊重设备的首选大小类别。
// Bold label.font = UIFont.systemFont(ofSize: UIFont.preferredFont(forTextStyle: .body).pointSize, weight: .bold) // Italic label.font = UIFont.italicSystemFont(ofSize: UIFont.preferredFont(forTextStyle: .body).pointSize)
这里张贴的其他答案都很好,但是有硬编码的 pointSize。