调整 UIPickerView 中的 UILabel 以适应
Size UILabel in UIPickerView to fit
如果文本不适合标签,我想使 pickerView
中的文本大小变小。例如,每当文本显示为 "This is a test for 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
。这仅在您希望文本换行到多行时有用。
如果文本不适合标签,我想使 pickerView
中的文本大小变小。例如,每当文本显示为 "This is a test for 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
。这仅在您希望文本换行到多行时有用。