Ios 在UIPickerView中调整UILabel的大小以适合

Ios 在UIPickerView中调整UILabel的大小以适合,ios,objective-c,uilabel,uipickerview,Ios,Objective C,Uilabel,Uipickerview,如果文本不适合标签,我想使pickerView中的文本大小变小。例如,每当文本显示如下“这是对somebo的测试…”时,我希望它自动将自身大小调整为较小的大小,以便适合。以下是我正在使用的代码: - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { UILabel *

如果文本不适合标签,我想使
pickerView
中的文本大小变小。例如,每当文本显示如下“这是对somebo的测试…”时,我希望它自动将自身大小调整为较小的大小,以便适合。以下是我正在使用的代码:

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

    if (!tView) {
        tView = [[UILabel alloc] init];
        [tView setFont:[UIFont systemFontOfSize:15]];
        tView.numberOfLines = [categorie count];
    }
    tView.text = [categorie objectAtIndex:row];
    return tView;
}
我试图将行数设置为0,但这并没有解决我的问题。然后我试着让标签
sizeToFit
,但也没有成功

我还试着使标签的框架高度更高,因此它将是多行的,这也没有帮助


我做错了什么?

请参阅
UILabel
的文档。您要执行以下操作:

if (!tView) {
    tView = [[UILabel alloc] init];
    [tView setFont:[UIFont systemFontOfSize:15]];
    tView.adjustsFontSizeToFitWidth = YES;
    tView.minimumScaleFactor = 0.7; // adjust as needed
}

不要设置
numberOfLines
。只有当您希望文本换行为多行时,这才有用。

我如何将其换行,而不是将字体变小?@MikeSteevson这是另一个问题。首先看“相关”部分右侧的问题。有几个似乎涵盖了这个话题。