我正在使用 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 应该具有的任何元素。我尝试简单地将日期选择器按原样扔到一个新视图上,然后通过将其连接到我的视图等来完成它。
我开始怀疑这是否是一个全球性问题,因为它只特别影响这个项目。