在UIPickerView中调整大小UILabel以适应

时间:2015-01-18 18:39:24

标签: ios objective-c uilabel uipickerview

如果文字不适合标签,我想让pickerView中的文字大小变小。例如,每当文本显示如此"这是对某些人的测试......"我希望它能自动调整尺寸以适应更小的尺寸。以下是我使用的代码:

- (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,但这也不起作用。

我也试过制作标签的框架高度,更高,所以它会有多行,但也没有帮助。

我出错了什么?

1 个答案:

答案 0 :(得分:2)

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

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

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