Ios 如何在iPhone/iPad的UILabel上设置粗体和斜体?
如何在iPhone/iPad的Ios 如何在iPhone/iPad的UILabel上设置粗体和斜体?,ios,objective-c,swift,uilabel,uifont,Ios,Objective C,Swift,Uilabel,Uifont,如何在iPhone/iPad的UILabel上设置粗体和斜体? 我搜索了论坛,但没有任何帮助。有人能帮我吗 sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18]; 有一个字体名称列表,您可以设置它来代替“fontWithName”属性。该链接是@Edinator。请查看此链接 myLabel.font = [UIFont boldSystemFontOfSize:16.0f] myLabel.font = [
UILabel
上设置粗体和斜体?
我搜索了论坛,但没有任何帮助。有人能帮我吗
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
有一个字体名称列表,您可以设置它来代替“fontWithName”属性。该链接是@Edinator。请查看此链接
myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
您可以随时使用上述任何一种方法我最近写了一篇关于UIFont API限制和解决方法的博客文章。 你可以在 使用我提供的代码,您可以轻松获得所需的UIFont,如下所示:
UIFont*myFont=[FontResolver fontWithDescription:@“字体系列:Helvetica;字体重量:粗体;字体样式:斜体;”代码>
然后使用以下命令将其设置为UILabel(或任何内容):
myLabel.font=myFont代码>我有同样的问题,需要在标签和按钮上同时应用粗体和斜体。您只需使用以下代码即可实现此效果:
myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
您也可以使用这个来使用粗体标签/按钮字体,正如这些答案中已经提到的,您只需要正确的字体名称。我发现这是最有用的资源,可以准确地知道使用什么名称。对于iOS 7系统默认字体,如果您希望保留系统默认字体,您将使用helvetica neue bold
[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
表示“保持大小不变”
使用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)
Swift 4的更新:
按如下方式使用:
myLabel.font=myLabel.font.bold
或
myLabel.font=myLabel.font.italic
或
myLabel.font=myLabel.font.with(traits:[.traitBold.traitCondensed])
Swift 5的更新
通过单击font字段中的字母“T”,可以设置标签的任何字体样式、系列和大小
这很简单。这是代码
[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];
这将对您有所帮助。Swift 3
粗体:
让bondFont=UIFont.boldSystemFont(大小:UIFont.labelFontSize)
斜体:
让italicFont=UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)
我对maksymilian wojakowski的回答进行了修改
您可以在其中添加或删除特征
例
label.font = label.font.italic().bold()
它在重复使用单元格时非常有用,如果您想删除前一个单元格标签上的斜体,请更新swift 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];
很多时候,粗体文本在另一个层次上以信息架构的方式被视为,因此在一行中没有粗体和常规文本,因此您可以将其拆分为两个标签/文本视图,一个是常规文本,另一个是粗体斜体文本。并使用编辑器选择字体样式。尽管@tolbard提供的答案令人惊讶且效果良好
我觉得为一些只需一行代码就可以实现的东西创建一个扩展是一种过度的杀伤力
通过使用UIFontDescriptor
设置字体属性,可以为标签中的相同文本设置粗体和斜体样式,如下例所示,使用Swift 4.0:
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
其他选择包括:
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
更多关于这些象征性特征意味着什么的信息 使用Swift 5
样式=粗体
样式=中等
样式=薄
只想提一提,
UIFont.systemFont(ofSize: 16, weight: UIFont.Weight.bold)
UIFont.boldSystemFont(ofSize: 16)
它们有不同的结果…这里的答案很好,但如果您希望标签尊重用户的首选尺码类别,请使用首选字体
UIFont.systemFont(ofSize:UIFont.preferredFont(forTextStyle:.body)。pointSize,weight:.bold)
这两种样式不起作用。在这种情况下,后者盛行斜体风格。谢谢你的回复@我知道你一次只能用一个…我也编辑了我的答案!我想,你的意思是“Arial”,而不是“Ariel”:)因为Arial不起作用。但是,它对Helvetica有效。请参阅此处的UIFont文档,您的意思是“HelveticaNeue”,而不是“Arial”:)如果我们添加自定义字体会怎么样??伟大的资源!我在我的iOS设备上浏览了它,找到了一种好看的字体,然后用“fontWithName”获得了它的一个实例。不知道为什么它没有获得更多的选票!对于没有粗体或斜体风格的字体,这非常好!啊。我明白为什么这可能不那么受欢迎。仅适用于iOS7及以上版本…不知道这是否应在NDA下考虑,但对于Xcode6和iOS8转基因种子,我得到了一个自定义字体的nil字体描述符,因为它在iOS7下不是nil。@Maksymilian我们可以在多个标签中的某个地方拒绝这个方法吗?例如:uitable view只是一个简短的提示,因为这个答案非常有用:returnwithtraits(.TraitBold,.TraitCondensed)
可能应该是returnwithtraits(.TraitBold、.traittalic)
以匹配函数名。如果您使用的是不带斜体的自定义字体,您可以[尝试此方法][1][1]:请检查我的答案。更好的答案是使用扩展方法的答案。withTraits()来自@Maksymilian Wojakowskisir先生如何设置文本框样式粗体而不声明大小目标C这是个问题,因为您使用的是固定字体名称。由于这可能会更改,因此这不是一个好的解决方案。来自Maksymilian Wojakowski的答案更好、更灵活。这不会设置斜体。这将只设置粗体。对于斜体您来说可以由界面生成器使用。但是,除了使用fontWithName:@“Arial Light”之外,还有一个大问题:如何在屏幕截图中指定其他权重?所有内容都会显示boldSystemFontSize(of:uu),但如果有人想要轻量或超轻量,该怎么办?
UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
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)