UITableView的颜色设置和cell的自动取消选中状态

1.系统默认的颜色设置

  1. //无色
  2. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  3. //蓝色
  4. cell.selectionStyle = UITableViewCellSelectionStyleBlue;
  5. //灰色
  6. cell.selectionStyle = UITableViewCellSelectionStyleGray;

2.自定义颜色和背景设置

 改变UITableViewCell选中时背景色:

UIColor *color = [[UIColoralloc]initWithRed:0.0green:0.0blue:0.0alpha:1];//通过RGB来定义自己的颜色

  1. cell.selectedBackgroundView = [[[UIView alloc] initWithFrame:cell.frame] autorelease];
  2. cell.selectedBackgroundView.backgroundColor = [UIColor xxxxxx];

3自定义UITableViewCell选中时背景

  1. cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cellart.png"]] autorelease];
  2. 还有字体颜色
  3. cell.textLabel.highlightedTextColor = [UIColor xxxcolor];  [cell.textLabel setTextColor:color];//设置cell的字体的颜色

4.设置tableViewCell间的分割线的颜色

[theTableView setSeparatorColor:[UIColor xxxx ]];

4.pop返回table时,cell自动取消选中状态

首先我有一个UITableViewController,其中每个UITableViewCell点击后都会push另一个ViewController,每次点击Cell的时候,Cell都会被选中,当从push的ViewController返回的时候选中的Cell便会自动取消选中。后来由于某些原因我把这个UITableViewController改成了UIViewController,之后就产生了一个问题:每次返回到TableView的时候,之前选中的Cell不能自动取消选中,经过查找得知:

UITableViewController有一个clearsSelectionOnViewWillAppear的property,

而当把UITableViewController修改成UIViewController后,这个属性自然就不存在了,因此我们必须手动添加取消选中的功能,方法很简单,在viewWillAppear方法中加入:

[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];

6.点击后,过段时间cell自动取消选中

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

…………

//消除cell选择痕迹

[self performSelector:@selector(deselect) withObject:nil afterDelay:0.5f];

}

- (void)deselect

{

[self.tableview deselectRowAtIndexPath:[self.tableview indexPathForSelectedRow] animated:YES];

}

时间: 2024-11-10 15:15:47

UITableView的颜色设置和cell的自动取消选中状态的相关文章

将UITableView背景颜色设置为透明的方法

最近在使用UITableView做页面的时候,被一个问题困扰很久,如何将UITableView的页面的背景颜色设置为透明, 显示效果为:每个TableView的Cell只显示图片,lbl等内容,但背景色为透明,即显示为其所在的的UIView的背景色. 在百度上搜索了很多方法都无效,今天终于解决: 一直在纠结于UITableView和UITableViewCell的背景色设置为透明,但无效,最终发现,需要设置一下UITableViewCell的 一个lableText的backgroundcolo

uitableview 两种设置重用cell的方式

1. a.在设置tableview属性的地方加上一句 [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"identifier"]; b.- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *c

iOS开发UITableViewCell的选中时的颜色设置

1.系统默认的颜色设置 //无色 cell.selectionStyle = UITableViewCellSelectionStyleNone; //蓝色 cell.selectionStyle = UITableViewCellSelectionStyleBlue; //灰色 cell.selectionStyle = UITableViewCellSelectionStyleGray; 2.自定义颜色和背景设置 改变UITableViewCell选中时背景色: UIColor *color

UITableView&UICollectionView设置单元格的默认选中状态

1. 场景需求 一个表格视图(或者宫格视图)中,当一个单元格被选中时设置彩色样式,选中其它单元格时设置灰色样式. 2. 一个思路 通过实现选中和非选择的代理,以在适当的时机进行UI更新操作. 3. UITableView 3.1 通过屏幕点击改变的选中状态回调给代理 //选中-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath;//非选中-(void)tableView:(

UITableView取消cell选中状态关于deselectRowAtIndexPath

有没有遇到过,导航+UITableView,在push,back回来之后,当前cell仍然是选中的状态. 当然,解决办法简单,添加一句[tableView deselectRowAtIndexPath:indexPath animated:YES]即可. 令人纠结的时,在没加这句的时候,有的视图同样回来之后,选中状态消失,为什么会出现这种情况呢? 原 来是,如果UITableView是在UITableViewController中时,就会默认取消,而如果是在UIViewController时,

iOS 在tableview的cell中的button上,添加选中状态的解答

大家都知道tableview的复用当然不知道的话可以个我留言或者在网上找  在这我就不多说了: 红色就是选中状态,但是这时候我们会发现往下拉当cell消失后出来新的cell中的button也是选中状态.话不多说下面上解决方法的代码! -(NSMutableArray *)boolArr{ //创建一个数组在这里数组中的NSNumber对象的下标是于 indexPath一一对应的这里我给他一百个根据自身的情况赋值 if (_boolArr==nil) { NSMutableArray *arr =

jquery设置、判断、获取input单选标签选中状态

1.设置某项单选input为选中状态: $("input[type='radio']").eq(1).attr('checked',true); ②也可设其属性checked为'checked',设置完后原选中项会自动取消选中 $("input[type='radio']").eq(1).attr('checked','checked'); 2.判断某单选框是否被选中状态: ? 使用object.attr('checked')==true是错的,应使用object.

jQ无法设置checkbox变成选中状态

设置以后checkbox并没有变成选中状态,用chrome调试看了一下,checkbox中确实有checked属性,针对这个问题,大家可以参考下本文 代码如下: $("input").attr("checked","checked") 设置以后checkbox并没有变成选中状态,用chrome调试看了一下,checkbox中确实有checked属性,而且,值为checked,但是页面显示仍然为未选中状态 $("input").

android RadioGroup中设置selector后出现多个别选中的RadioButton的解决办法

在一个RadioGroup组中假如有三个或者以上的RadioButton,当然你需要给这些RadioButton设置selector.设置其中的一个为默认选中状态(在xml中设置).当程序在手机上运行时你会发现,那个设置默认选中的RadioButton总是被选中的. 那么怎样解决它呢? 办法:既然在xml设置默认选中状态的方法行不通,那么我们就换一种思路,在代码中动态的设置RadioButton的checked属性.这就是问题的解决办法,就是这么的简单.愿意暂时不详.(不过这个结论我已经证实了,