我有一个带有两个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/

10-13 09:19