UITableView ......正确的方法

时间:2012-02-24 20:50:49

标签: iphone objective-c uitableview correctness

我正在尝试制作像本机日历应用程序一样的UITableView:

enter image description here

但我正在努力学习最好的方法。我能够在cellForRowAtIndexPath方法中使用switch语句获得大部分内容,但是在选择单元格时我遇到了更改textColor的麻烦。

由于某种原因,cell.isSelected始终为NO,并且无论如何我都无法在选择另一个单元格后重新加载tableview。

我是否应该将UITableViewCell子类化为这么简单并存储一组单元格?

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

没有必要进行子类化,如app doc委托函数中所述:

tableView:willSelectRowAtIndexPath:

应该做的伎俩

修改

下面是一些代码,可以展示使用委托的想法。请注意,此代码未经测试,因为我目前不在我的xcode前面。

-(void)willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (prevIndexPath != nil) {
        UITableViewCell* prevCell = [self.tableView cellForRowAtIndexPath: prevIndexPath];
        prevCell.textLabel.textColor = [UIColor black]; // your initial color here
    }

    UITableViewCell* cell = [self.tableView cellForRowAtIndexPath: indexPath];
    cell.textLabel.textColor = [UIColor green];

    prevIndexPath = indexPath;
}

确保将UITableViewDelegate协议设置为管理TableView的控制类,并将tableViews.delegate设置为。

要运行此代码,还必须使用名称prevIndexPath定义属性或变量。这个包含以前选择的单元格,以恢复到单元格的初始颜色。