我有两个选择器的视图,我使用...viewForRow...
来修改选择器内显示的文本的字体。但是,我的一个选择器显示为空,但如果我滚动选择器,则值将显示在其指定的textFields中。另一个选择器看起来非常好。我想知道为什么其中一个选择器显得空了?
请注意,显示为空的选择器有两个组件。这是一张信用卡到期日期选择器,因此每个月有一个组件,一年有一个组件。
以下是...viewForRow...
方法的代码:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *pickerLabel = (UILabel *)view;
if (pickerLabel == nil)
{
//label size
CGRect frame = CGRectMake(0.0, 0.0, 280, 30);
pickerLabel = [[UILabel alloc] initWithFrame:frame];
[pickerLabel setTextAlignment:UITextAlignmentLeft];
[pickerLabel setBackgroundColor:[UIColor clearColor]];
[pickerLabel setFont:[UIFont fontWithName:@"Helvetica" size:11.0]];
}
if ([pickerView isEqual:pickerExpiration])
{
if (component == 0)
{
[pickerLabel setText:[NSString stringWithFormat:@"%@", [monthsList objectAtIndex:row]]];
}
[pickerLabel setText:[NSString stringWithFormat:@"%@", [yearsList objectAtIndex:row]]];
return pickerLabel;
}
billingAddress = [addresses objectAtIndex:row];
[pickerLabel setText:[NSString stringWithFormat:@"%@ %@", billingAddress.addressName, billingAddress.fullAddressText]];
return pickerLabel;
}
任何提示都将不胜感激。
答案 0 :(得分:0)
想出来。这是因为,拾取器有两个组件,而我通过'pickerLabel'制作的标签对于双组件选择器来说太大了。所以,我不得不将CGRect的宽度分成两部分,并且它有效。