2015-11-02 98 views
1

我的應用程序只使用系統字體,但我是函數創建它們 -iOS - 是否可以使UIFont SystemFont Italic和Thin(不使用fontWithName :)?

+ (UIFont * _Nonnull)systemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight 

我怎麼可以讓系統字體斜體,重量UIFontWeightThin?

我不能使用特定族字體的調用(fontWithName :),因爲我只希望它是系統字體。

謝謝:)

+0

可能重複的[UILabel字體:粗體和斜體](http://stackoverflow.com/questions/14019441/uilabel-font-bold-and-italic) –

+0

你可能想看看這個答案http: //stackoverflow.com/a/17977354/2268168 – Sudo

+0

我不想使用UIFont fontWithName:因爲我希望它是系統字體(Helvetica for ios 8,SF for ios 9等) –

回答

0

什麼是這樣的:

[youLabel setFont:[UIFont fontWithName:[youLabel.font fontName] size:UIFontWeightThin]]; 
+0

尺寸不一樣作爲重量的東西。您不應該傳遞'UIFontWeightThin',但應該將文本的大小傳遞給setFont:size:方法。 – Kekoa

1

您應該創建在第一字體描述包含您的字體是否斜體或粗體或薄等類型..

UIFontDescriptor* desc = [UIFontDescriptor fontDescriptorWithFontAttributes: 
          @{ 
          UIFontDescriptorFaceAttribute: @"Thin" 
          } 
          ]; 

之後創建保持描述符信息的字體對象

UIFont *font = [UIFont fontWithDescriptor:desc size:17]; 

因此,將字體對象設置爲您的標籤。

現在你已經有了一個使用系統字體的字體對象,但是你可以在不使用fontWithName的情況下改變它的類型和大小。

+0

但是,如何使用「Thin」和「Italic」面的屬性製作字體?字典中不能有重複的鍵。 –

+0

@DielsonSales你可以創建兩個UIFontDescription對象,一個用於'瘦'和一個用於'斜體',現在你可以使用你想要的任何東西創建你的字體,甚至斜體或薄。 –