这是一个动态原型 UITableView:在我的cellForRowAtIndexPath:
我已经取消了我的自定义单元格,这工作得很好:
TimeSetViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:@"timeCell" forIndexPath:indexPath];
接下来,我在 timeCell 中将 TimePicker 设置为 UITextField ,这也可以正常工作(即时间选择器在 UITextField 中的 onclick 中显示
timeCell
):// Start Time UIDatePicker *sTimePicker = [[UIDatePicker alloc]init]; sTimePicker.datePickerMode = UIDatePickerModeTime; sTimePicker.backgroundColor = [UIColor whiteColor] [cell.startTripTime setInputView:sTimePicker]; // End Time UIDatePicker *eTimePicker = [[UIDatePicker alloc]init]; eTimePicker.datePickerMode = UIDatePickerModeTime; eTimePicker.backgroundColor = [UIColor whiteColor]; [cell.endTripTime setInputView:eTimePicker];
接下来我想通过一个事件来更新单元格的 UITextField ,我从@Mani的帖子中了解到,我已经设置了:
sTimePicker.tag = 1; eTimePicker.tag = 2; [sTimePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged]; [eTimePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
在我的自定义方法中,
-(void)updateTextField:(UIDatePicker *)sender
我包含了这个://Date Formatter NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init]; [dateFormat setTimeStyle: NSDateFormatterShortStyle]; if(sender.tag == 1){ //Get Start Date UIDatePicker *starttimepicker = (UIDatePicker*)sender.inputView; thisStartTime = [starttimepicker date]; //Display Date NSString *startTimeText = [dateFormat stringFromDate:thisStartTime]; sTimeText = [NSString stringWithFormat:@"%@",startTimeText]; } if(sender.tag == 2){ //Get End Date UIDatePicker *endtimepicker = (UIDatePicker*)sender.inputView; thisEndTime = [endtimepicker date]; //Display Date NSString *endTimeText = [dateFormat stringFromDate:thisEndTime]; eTimeText = [NSString stringWithFormat:@"%@",endTimeText]; }
问题更新
我设法通过
startTimeText
and 和endTimeText
tocell.startTripTime.text
并cell.endTripTime.text
通过sTimeText
andeTimeText
。我使用
[_tableView reloadData];
了-(void)updateTextField:(UIDatePicker *)sender
(在两个if块之后),数据显示在我的cell.startTripTime
和cell.endTripTime
UITextField 中,但在我的各个部分中显示相同,而我希望它只更改第一部分的时间,我该如何解决?//I couldn't include the image but the output of the UITableView looks like this: _________________________ Section 1 _________________________ Start Time : 4:50 PM _________________________ End Time: 5:50 PM _________________________ Section 2 _________________________ Start Time : 4:50 PM _________________________ End Time: 5:50 PM _________________________
[_tableView reloadData];
似乎干扰并重新加载视图,而我什至还没有完成选择我想要的时间,我该如何解决这个问题?