首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在uitableview的每一行中切换at进程视图的可见性可一次切换多个

在uitableview的每一行中切换at进程视图的可见性可一次切换多个
EN

Stack Overflow用户
提问于 2011-03-24 03:09:22
回答 2查看 760关注 0票数 1

基本上,我有一个uitableview,每个单元格都包含一个and进程视图和一个uiswitch。切换开关可切换进度视图的可见性。

但。

如果我在第0行切换开关。显示了row:0和row:11中的进度视图。

我的开关有这个:(UISwitch *)cell.accessoryView addTarget:self action:@selector(PrefetchStudy:) forControlEvents:UIControlEventValueChanged;

下面是它的动作:

代码语言:javascript
运行
复制
-(void)PrefetchStudy:(id)sender
{
UISwitch *tmpSwitch = (UISwitch*)sender;

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:tmpSwitch.tag inSection:0];
CustomCell *cell = (CustomCell *)[self.tableview cellForRowAtIndexPath:indexPath];
NSString *tmp =  cell.patient_name.text;
NSLog(@"This is the patient name of the selected row: %@", tmp);
if(tmpSwitch.on)
{
    cell.progressBar.hidden = NO;

}
else
{
    cell.progressBar.hidden = YES;
}


}

对于为什么会发生这种情况,有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2011-03-24 03:58:57

你在你的代码中设置断点了吗?如果是这样,这个方法是否被调用了两次(一次用于第0行,一次用于第11行),或者是cellForRowAtIndexPath方法错误地使用行0的可见性更新了第11行?

票数 0
EN

Stack Overflow用户

发布于 2012-09-21 15:55:57

由于UITableView重用uitableviewcell以获得更好的性能,所以您不能指望每个cell都是唯一的。(在本例中,第11行重用了第1行单元格),则应在以下位置重置单元格的状态:

代码语言:javascript
运行
复制
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5410346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档