开发UITableView列表时,点某一项时的高亮操作我们一般使用默认效果,或者有时产品根本就意识不到需要高亮,今天自己写代码时,需要控制高效效果,实现以后做个笔记以防忘记。
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated{//重写高亮函数
if (highlighted) {
self.textLabel.backgroundColor = [UIColor yellowColor];
self.textLabel.textColor = [UIColor redColor];
self.textLabel.text = [NSString stringWithFormat:@"这是第%ld行 点中我啦哈哈哈",(long)self.tag];
}else{
self.textLabel.backgroundColor = [UIColor clearColor];
self.textLabel.textColor = [UIColor blackColor];
self.textLabel.text = [NSString stringWithFormat:@"这是第%ld行 哈哈哈",(long)self.tag];
}
}
还有一种暴露出来的方式,但是并不推荐,以为每次都会调用tableView cellForRowAtIndexPath:indexPath
方法如下:
在ViewController实现
- (void)tableView:(UITableView *)tableView didHighlightRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.textColor = [UIColor yellowColor];
//cell.contentView.backgroundColor = [UIColor greenColor];
}
- (void)tableView:(UITableView *)tableView didUnhighlightRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.textColor = [UIColor blackColor];
//cell.contentView.backgroundColor = [UIColor grayColor];
}
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8