您的位置:首页 > 产品设计 > UI/UE

tableView 中的单选控制 UITableViewCellAccessoryCheckmark

2013-10-22 15:49 351 查看
需要注意的是这个函数,用来设置cell的UITableViewCellAccessoryType 属性--这里用到UITableViewCellAccessoryCheckmark

- (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath

{

if(indexPath.row==currentIndex){

return UITableViewCellAccessoryCheckmark;

}

else{

return UITableViewCellAccessoryNone;

}

}

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

{

[tableView deselectRowAtIndexPath:indexPath animated:NO];

if(indexPath.row==currentIndex){

return;

}

NSIndexPath *oldIndexPath = [NSIndexPath indexPathForRow:currentIndex

inSection:0];

UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath];

if (newCell.accessoryType == UITableViewCellAccessoryNone) {

newCell.accessoryType = UITableViewCellAccessoryCheckmark;

newCell.textColor=[UIColor blueColor];

}

UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:oldIndexPath];

if (oldCell.accessoryType == UITableViewCellAccessoryCheckmark) {

oldCell.accessoryType = UITableViewCellAccessoryNone;

oldCell.textColor=[UIColor blackColor];

}

currentIndex=indexPath.row;

}

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

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];

if (cell == nil)

{

cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease];

}

if(indexPath.row==currentIndex){

cell.textColor=[UIColor blueColor];

}

else{

cell.textColor=[UIColor blackColor];

}

cell.text=@"ttttttttttttttt";

return cell;

}

currentIndex是int类型的成员变量,记录当前已经选中cell的行号,见代码didSelectRowAtIndexPathcurrentIndex=indexPath.row;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: