我有一个简单的问题与UITableViewCell.
我想要的是更改所选单元格的文本颜色.
在我的cellForRowAtIndexPath方法中,我设置:
我想要的是更改所选单元格的文本颜色.
在我的cellForRowAtIndexPath方法中,我设置:
cell.textLabel.textColor = [UIColor whiteColor]; cell.selectionStyle = UITableViewCellSelectionStyleNone; cell.textLabel.highlightedTextColor = [UIColor orangeColor];
如果selectionStyle是UITableViewCellSelectionStyleNone,highlightTextColor将不会更改.
所以我用这两种方法来设置文字颜色:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView cellForRowAtIndexPath:indexPath].textLabel.textColor = [UIColor orangeColor]; return indexPath; } - (NSIndexPath *)tableView:(UITableView *)tableView willdeselectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView cellForRowAtIndexPath:indexPath].textLabel.textColor = [UIColor whiteColor]; return indexPath; }
它可以工作,但滚动表视图时,颜色会发生变化.
解决方法
得到解决方案
通过在if(cell == nil)中设置颜色来检查
通过在if(cell == nil)中设置颜色来检查
if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier]; cell.textLabel.textColor = [UIColor whiteColor]; }
和
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView cellForRowAtIndexPath:indexPath].textLabel.textColor = [UIColor orangeColor]; } - (void)tableView:(UITableView *)tableView diddeselectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView cellForRowAtIndexPath:indexPath].textLabel.textColor = [UIColor whiteColor]; }
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。