Ios iPhone-在PickerView中设置字体列表

Ios iPhone-在PickerView中设置字体列表,ios,objective-c,fonts,uipickerview,Ios,Objective C,Fonts,Uipickerview,我必须在Pickerview中显示字体列表。当我在picker view委托方法中设置字体数组时,其中一个名为“Bodoni装饰”的字体在picker view标签中扭曲,其余所有字体正确显示 请看图片: 我通过以下代码获得字体列表: #pragma mark- Font Array return methods -(NSArray*)fontFamilyArrayReturnMethod { NSLog (@"Font families: %@", [UIFont familyN

我必须在Pickerview中显示字体列表。当我在picker view委托方法中设置字体数组时,其中一个名为“Bodoni装饰”的字体在picker view标签中扭曲,其余所有字体正确显示

请看图片:

我通过以下代码获得字体列表:

#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;    
}
为什么此字体在选择器视图标签中不是文本。我需要字体名称文本而不是设计的字符。
感谢您的帮助

在谷歌上快速搜索了一下“Bodoni装饰”,这实际上就是字体的样子,所以这种行为实际上是正确的

--编辑-- 现在,您有以下行:

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

这使得字体名称是使用字体本身编写的。如果希望“Bodoni装饰”显示为文本,则必须删除这一行。但是,您将无法再预览每种字体。

我的问题是,它应该在pickerview中显示文本字体名称,而不是设计的字符。谢谢您的快速回复。@Nico,是的,但那个字体是符号。如果您需要它的可读性,那么您需要使用不同的字体…谢谢Kamaros,但我无法使用预览进行压缩。@Nico您可以尝试使用NSAttributed字符串显示字体名称以及示例(即,以Helvetica等通用字体显示字体名称,然后在字体本身中显示“ABC”或类似字体),或者只需特别检查Bodoni装饰物,并使用不同的字体即可(这种字体很粗糙,没有预览)。@Kamaros:感谢NSAttributedString选项看起来不错,我已经想到了第二个,但我不能欺骗用户。:)什么是arrayContainFontFamily