如何在UIPickerView中更改字体大小?

3

可能是重复问题:
UIPickerView字体…

我在我的应用程序中遇到了一个困难的问题。我已经到处搜索了,但无济于事。如何更改UIPickerView中的字体大小?

2个回答

15

在选择器(picker)的数据代理中实现viewForRow:forComponent:方法,在其中创建一个UILabel实例,并使用所需的字体(以及所有其他属性),例如:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
    UILabel* tView = (UILabel*)view;
    if (!tView){
        tView = [[UILabel alloc] init];
            // Setup label properties - frame, font, colors etc
            ...
    }
    // Fill the label text here
    ...
    return tView;
}

@Vladimir:非常感谢您的帮助,加一!但我有一个问题。这种自定义是否会涉及到HIG方面的问题?因为我在您早期的回答中看到了这个问题,那是在2010年。如果有任何需要注意的地方,请告诉我。 - Nitin
@Nit,我认为自那时起UIPickerView没有任何变化... - Vladimir
@Vladimir:好的,谢谢。我也是这么想的,因为那是过去式。我只需要一些确认,现在我得到了。非常感谢你为大家提供了帮助。如果您不介意,我想补充一些内容。 - Nitin
@Nit,如果你想编辑任何带有有用信息的答案,请随意这样做 - SO是社区驱动的网站 :) 如果您有稍微不同的问题,最好将其作为单独的问题提出 - 在SO上,长评论线程确实不被鼓励。 - Vladimir
我认为你应该在分配并初始化之后自动释放tView。 - Yunus Nedim Mehel
1
@YunusNedimMehel,是的,tView确实应该被自动释放。但是我们假设现在每个人都使用ARC,所以上面的代码没有问题。 - Vladimir

-1

PickerView.transform = CGAffineTransformMakeScale(0.4, 0.4);

PickerView.transform = CGAffineTransformMakeScale(0.4, 0.4);


1
-1 这会使整个UIPickerView变小 - Jasper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接