我有一个带有两个UI组件的UIViewController:UITableView和UIDatePicker。我的目标是创建一个屏幕,如ical-> add-> Start&End。
我将tableView委托和dateSource添加到我的头文件中。在实现文件中,我想在tableCell中显示datePicker的当前值(如iCal“开始和结束”屏幕)。
我的.m如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
[datePicker addTarget:self action:@selector(datePickerValueChanged) forControlEvents:UIControlEventValueChanged];
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section];
NSMutableArray *dict = [dictionary objectForKey:@"DATA"];
if(indexPath.row == 1){
UISwitch *switchSpecifyEnd = [[[UISwitch alloc] initWithFrame:CGRectZero] autorelease];
cell.accessoryView = switchSpecifyEnd;
[(UISwitch *)cell.accessoryView setOn:NO]; // Or NO, obviously!
[(UISwitch *)cell.accessoryView addTarget:self action:@selector(switchSpecifyEnd)
forControlEvents:UIControlEventValueChanged];
cell.textLabel.text = [dict objectAtIndex:indexPath.row];
}else if(indexPath.row == 3){
UISwitch *switchOpenEnd = [[[UISwitch alloc] initWithFrame:CGRectZero] autorelease];
cell.accessoryView = switchOpenEnd;
[(UISwitch *)cell.accessoryView setOn:NO]; // Or NO, obviously!
[(UISwitch *)cell.accessoryView addTarget:self action:@selector(switchOpenEnd)
forControlEvents:UIControlEventValueChanged];
cell.textLabel.text = [dict objectAtIndex:indexPath.row];
}else{
cell.textLabel.text = [dict objectAtIndex:indexPath.row];
// NSLog(@"Update Cell: %@",<but how>);
}
return cell;
}
- (void)datePickerValueChanged{
NSLog(@"Logging: %@", [NSString stringWithFormat:@"%@",datePicker.date]);
}
如何使用datePicker中的值更新tableCell?
BR
Mybecks
最佳答案
要更新表格单元格,您需要重新加载表格,当表格重新加载时,cellForRowAtIndexPath将被调用,您可以更新单元格文本。
假设这是您在日期选择器中选择某个日期时调用的方法
-(IBAction)setStartTimeMethod
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EEE MMM dd, yyyy hh:mm a"];
self.startTimeString = [dateFormat stringFromDate:[timeStartPicker date]];
[dateFormat release];
[optionsTableView reloadData];
}
关于objective-c - UIDatePicker的UITableViewCell中的实时值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8225431/