我有一个带有以下委托方法实现的UIPickerView:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return 2;
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
if(!view)
{
view = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 37)] autorelease];
UILabel *label = (UILabel*)view;
label.autoresizingMask = UIViewAutoresizingFlexibleWidth;
label.textAlignment = UITextAlignmentCenter;
label.font = [UIFont boldSystemFontOfSize:24];
label.backgroundColor = [UIColor whiteColor];
view.userInteractionEnabled = NO;
}
((UILabel*)view).text = @"X";
return view;
这个代码在iOS 5中运行得很好。也就是说,我得到一个带有2行的UIPickerView,上面有一个X.但是,在iOS4下,即使调用了3个方法,当我显示UIPickerView时,内部显示为空白,就像没有行一样。
有什么想法吗?
答案 0 :(得分:1)
两个想法。首先,你创建的视图没有宽度 - 它设置为0.我想你需要给它一些宽度,不是吗?
其次,该委托方法的描述表明传入的视图是隐藏和缓存的。这会让我相信你可能想要“view.hidden = NO;”。
我打赌其中一个或两个都是问题,但是YMMI: - )
答案 1 :(得分:1)
谢谢,我有同样的问题。 只是改变了框架尺寸我已经解决了它。