1

我正在使用 UIPickerView 和 UIToolbar,并将其添加到 UIView 并将此视图添加到我的主视图

addTimePicker=[[UIPickerView alloc]init];
[addTimePicker setFrame: CGRectMake(0, 20, 0, 0)];
addTimePicker.showsSelectionIndicator=YES;
addTimePicker.dataSource=self;
addTimePicker.delegate=self;

picker= [[UIView alloc] initWithFrame:CGRectMake(0, screenHeight/2+35, screenWidth, screenHeight/2+35)];
picker.backgroundColor=[UIColor whiteColor];
addToolbar=[[UIToolbar alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, 45)];
addToolbar.barTintColor=[UIColor whiteColor];

 addToolbar.items = [NSArray arrayWithObjects:flexibleSpace,addAvailabilityButton, nil];
[picker addSubview: addTimePicker];
[picker addSubview: addToolbar];

[self.view addSubview:picker];

但是,尽管将我的控制器配置为符合 UIPickerViewDataSource 和 UIPickerViewDelegate 协议,我的

-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

或者

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

或者

-(NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component

根本没有被调用。

我环顾四周,但似乎找不到不调用它的原因。

尽管每次调用 numberOfRowsInComponent 时返回默认值 3,并且 numberOfComponentsInPickerView 返回默认值 5,但当我记录数据时,它表示我检查的任何组件都有 0 行。

我使用一个新项目测试了这段代码,它就像一个显示所有数据的魅力。

编辑:更多测试,这就是场景;

甚至血腥的UIDatePicker也不起作用。我看不到 datepicker 应该具有的任何元素。我尝试简单地将日期选择器按原样扔到一个新视图上,然后通过将其连接到我的视图等来完成它。

我开始怀疑这是否是一个全球性问题,因为它只特别影响这个项目。

4

1 回答 1

0

找出问题所在。

我正在使用一个空的数据集处理程序https://github.com/dzenbot/DZNEmptyDataSet,它也试图处理选择器。删除此处理程序解决了我的问题。

我已经吸取了教训,而且我学得很好。3rd 方库是一场豪赌。

干杯。

于 2014-08-28T00:38:37.733 回答