我正在尝试制作像本机日历应用程序一样的UITableView:
但我正在努力学习最好的方法。我能够在cellForRowAtIndexPath方法中使用switch语句获得大部分内容,但是在选择单元格时我遇到了更改textColor的麻烦。
由于某种原因,cell.isSelected始终为NO,并且无论如何我都无法在选择另一个单元格后重新加载tableview。
我是否应该将UITableViewCell子类化为这么简单并存储一组单元格?
任何帮助都将不胜感激,谢谢。
答案 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定义属性或变量。这个包含以前选择的单元格,以恢复到单元格的初始颜色。