例如:
-Cell 1-
-Cell 2-
-Cell 3-
- 4月4日
如果我将手指放在Cell 2上并滚动到Cell 4,它将突出显示Cell 2,即使didSelectRowAtIndexPath:永远不会被触发。
有什么想法吗?
EDIT 添加了代码:
UITableViewCell *cell = nil;
static NSString *cellId = @"StyleDefault";
cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId] autorelease];
}
cell.textLabel.text = @"Cell One";
cell.textLabel.textAlignment = UITextAlignmentCenter;
[cell setAccessoryView:nil];
return cell;
答案 0 :(得分:1)
固定它!
我的解决方案分为两部分:
1)在cellForRowAtIndexPath中:输入“cell.selected = NO;”,它解决了单元格是否被触及然后离开屏幕(滚动)的问题。
UITableViewCell *cell = nil;
static NSString *cellId = @"StyleDefault";
cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId] autorelease];
}
cell.textLabel.text = @"Cell One";
cell.textLabel.textAlignment = UITextAlignmentCenter;
[cell setAccessoryView:nil];
//Here:
cell.selected = NO;
return cell;
2)把“[tableView deselectRowAtIndexPath:indexPath animated:YES];” into didSelectRowAtIndexPath:而不是我以前的“[[tableView cellForRowAtIndexPath:indexPath] setSelected:NO];”这么多级别都是错的。
[tableView deselectRowAtIndexPath:indexPath animated:YES];
希望能帮助其他人解决这个问题。案件结案。
答案 1 :(得分:0)
创建单元格时可以使用以下内容。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell = Your allocation.
cell.selectionStyle = UITableViewCellSelectionStyleNone;
我想你还需要看一下触摸的UIViewTable属性,即延迟内容触摸和可取消的内容触摸。
希望这有帮助。
答案 2 :(得分:0)
在你的UITableView委托中覆盖-tableView:willSelectRowAtIndexPath:并返回nil以确保你不允许它选择行。