iPhone-在PickerView中设置字体列表

时间:2014-03-04 14:47:58

标签: ios objective-c fonts uipickerview

我必须在Pickerview中显示字体列表。当我在选择器视图委托方法中设置字体数组时,其中一个名为“ Bodoni Ornaments ”的字体在选择器视图标签中被扭曲,其余所有字体都显示正常。

请看图片:

enter image description here

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

#pragma mark- Font Array return methods 

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

Picker View Delegate方法代码:

- (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;    
}

为什么此字体不会作为选择器视图标签中的文本。我需要字体名称文字而不是设计字符。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

快速谷歌搜索“Bodoni Ornaments”,这实际上是字体的样子,所以行为实际上是正确的。

- EDIT-- 现在,您有以下一行:

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

这样就可以使用字体本身编写字体名称。如果您希望“Bodoni Ornaments”显示为文本,则必须删除此行。但是,您将无法再预览每种字体。