如何在不关心尺寸的情况下制作斜体UILabel?

时间:2013-12-28 01:37:32

标签: ios ios7 uilabel nsattributedstring uifont

我有一个UILabel,我以编程方式更新了textattributedText属性。在某些情况下,我想把它用斜体。我可以:

A)设置UILabel.font属性:

myLabel.font = [UIFont italicSystemFontOfSize: 12.0];

B)或使用属性字符串做类似的事情:

myLabel.attributedText = [[NSAttributedString alloc] initWithString: @"my text" attributes: @{NSFontAttributeName: [UIFont italicSystemFontOfSize: 12.0]}]]

但我不想关心它的大小。我只想要“默认”字体和大小,但用斜体字。目前,我实际上使用的是倾斜属性:

NSMutableAttributedString *text = [[NSMutableAttributedString alloc]
    initWithString: @"My Text"
    attributes: @{NSObliquenessAttributeName: @(0.5)}];
myLabel.attributedText = text;

这使得我不必关心任何大小,但我认为倾斜度只是斜体。

2 个答案:

答案 0 :(得分:6)

您可以使用[UIFont systemFontSize]

myLabel.attributedText = [[NSAttributedString alloc] 
                     initWithString: @"my text" 
                         attributes: @{
              NSFontAttributeName: [UIFont italicSystemFontOfSize: 
                                         [UIFont systemFontSize]]}]];

此外,还有更多选择可供选择:

+ (CGFloat)labelFontSize;//Returns the standard font size used for labels.
+ (CGFloat)buttonFontSize;//Returns the standard font size used for buttons.
+ (CGFloat)smallSystemFontSize;//Returns the size of the standard small system font.
+ (CGFloat)systemFontSize;//Returns the size of the standard system font.

答案 1 :(得分:2)

另一种选择是直接从标签字体读取磅值。

myLabel.font = [UIFont italicSystemFontOfSize:myLabel.font.pointSize];

myLabel.attributedText = [[NSAttributedString alloc] initWithString: @"my text" attributes: @{NSFontAttributeName: [UIFont italicSystemFontOfSize:myLabel.font.pointSize]}];