iOS Developer

IOS TableView Cell 选中状态

2016-12-07  本文已影响1646人  JakieZhang

//懒加载

-(NSArray *)allColors {

if(_allColors==nil) {

_allColors=@[[UIColorredColor],[UIColorgreenColor],[UIColorblueColor]];

}

return_allColors;

}

- (void)viewDidLoad {

[superviewDidLoad];

self.selectIndex= -1;

}

- (void)didReceiveMemoryWarning {

[superdidReceiveMemoryWarning];

}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView {

return1;

}

- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section {

return50;

}

- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {

UITableViewCell*cell = [tableViewdequeueReusableCellWithIdentifier:@"reuseIdentifier"];

if(cell ==nil) {

cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"reuseIdentifier"];

staticintmyIndex =0;

myIndex++;

NSLog(@"%d",myIndex);

}

UILabel*label = [cell.contentViewviewWithTag:100];

if(label ==nil) {

//创建label并添加到cell的contentView

//自定义内容视图

label = [[UILabelalloc]init];

label.frame=CGRectMake(0,0, tableView.frame.size.width,60);

label.textAlignment=NSTextAlignmentCenter;

label.font= [UIFontsystemFontOfSize:36];

//将创建好的视图添加到cell的contentView

label.tag=100;

[cell.contentViewaddSubview:label];

}

label.text= [NSStringstringWithFormat:@"当前是第%ld行",indexPath.row];

//设置辅助视图

/*

UITableViewCellAccessoryDisclosureIndicator,UITableViewCellAccessoryDetailDisclosureButton UITableViewCellAccessoryCheckmark

UITableViewCellAccessoryDetailButton

*/

//cell.accessoryType = UITableViewCellAccessoryCheckmark;

if(indexPath.row!=self.selectIndex){

cell.accessoryType=UITableViewCellAccessoryNone;

}else{

cell.accessoryType=UITableViewCellAccessoryCheckmark;

}

returncell;

}

//默认单元格高度44,但是可以自己通过代理方法修改

-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath {

return60;

}

//一答

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

//把选中的行号记录下来

self.selectIndex= indexPath.row;

//设置选中行的辅助视图

UITableViewCell*selectCell = [tableViewcellForRowAtIndexPath:indexPath];

selectCell.accessoryType=UITableViewCellAccessoryCheckmark;

}

//哪行被反选该如何处理

-(void)tableView:(UITableView*)tableView didDeselectRowAtIndexPath:(nonnullNSIndexPath*)indexPath {

//取出哪行cell被反选了

UITableViewCell*deselectCell = [tableViewcellForRowAtIndexPath:indexPath];

//设置被反选的cell的辅助视图

deselectCell.accessoryType=UITableViewCellAccessoryNone;

}

上一篇下一篇

猜你喜欢

热点阅读