2014-03-04 76 views
0

我必須在Pickerview中顯示字體列表。當我在選擇器視圖委託方法中設置字體數組時,其中一個名爲「Bodoni Ornaments」的字體在拾取器視圖標籤中被扭曲,所有字體都會正確顯示。iPhone-在PickerView中設置字體列表

請看圖片:

enter image description here

我通過這段代碼獲取字體列表:

#pragma mark- Font Array return methods 

-(NSArray*)fontFamilyArrayReturnMethod 
{ 
    NSLog (@"Font families: %@", [UIFont familyNames]); 
    return [UIFont familyNames]; 
} 

選擇器視圖的委託方法代碼:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{ 

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 0, pickerView.frame.size.width-7, 44)]; 
    label.backgroundColor = [UIColor clearColor]; 
    label.textColor = [UIColor blackColor]; 
    label.textAlignment = NSTextAlignmentCenter; 
    label.font = [UIFont fontWithName:[arrayContainFontFamily objectAtIndex:row] size:18]; 
    label.text = [NSString stringWithFormat:@"%@", [arrayContainFontFamily objectAtIndex:row]]; 
    return label;  
} 

爲什麼這個字體而不是作爲選擇器視圖標籤中的文本。我需要字體名稱文本而不是設計字符。 任何幫助表示讚賞。

+0

什麼是arrayContainFontFamily – iPeter

回答

1

快速搜索「Bodoni Ornaments」後,這實際上是字體的樣子,所以行爲實際上是正確的。

- 編輯 - 現在,你有下面這行:

label.font = [UIFont fontWithName:[arrayContainFontFamily objectAtIndex:row] size:18]; 

這使得這樣的字體名稱使用字體本身寫的。如果你想讓「Bodoni Ornaments」以文字形式出現,你必須刪除這一行。但是,您將無法再預覽每種字體。

+0

我的問題是它應該說文本字體名稱,而不是在pickerview中設計字符。感謝您的快速響應。 – Nico

+0

@Nico,它確實,但是那個字體是符號。如果你需要它是可讀的,那麼你需要使用不同的字體... – Wain

+0

@Nico看到我的編輯。 – Kamaros