我有一个表格视图
当我点击单元格时一切都很好
但是,当我从手机上取下手指时,手机会保持选中状态
当用户停止触摸给定的单元格而不触及另一个单元格时,如何取消选择
答案 0 :(得分:1)
简单:
在此方法中:didSelectRowAtIndexPath
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UIActionSheet *photoPicker ;
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
答案 1 :(得分:0)
您必须在cellForRowAtIndexPath
中设置样式或更改willSelectRowAtIndexPath
中的单元格,然后在didSelectRowAtIndexPath
中更改。
例如
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// ...
cell.selectionStyle = UITableViewCellSelectionStyleBlue; // or an other style
// ...
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// ...
[tableView deselectRowAtIndexPath:indexPath animated:NO];
// ...
}
答案 2 :(得分:0)
将以下内容放在UITableView委托中。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
[cell setSelected:NO animated:YES];
}
答案 3 :(得分:0)
您是否考虑过处理触摸事件?
例如:添加UITapGestureRecognizer,使用-(CGPoint)locationInView:(UIView *)view
方法检测正在触摸的单元格。触摸开始时将单元格标记为已选中,并在触摸结束时标记为已取消选择。
答案 4 :(得分:0)
您是否已将委托分配给UITableView?
self.tableView.delegate = self;
这就是你遇到这个的原因
这不起作用 - 单元格没有显示存在的迹象 选择
答案 5 :(得分:0)
在tableView:didSelectRowAtIndexPath:
中,使用NO
方法将单元格的selected属性设置为setSelected:animated:
。
E.g。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
[cell setSelected:NO animated:YES];
}
注意:强>
使用上述方法设置单元格的selected属性= NO和animated = YES将导致分隔符消失。我发现绕过这个的唯一方法是设置动画=否,但是,如果我找到另一种方式,我会更新我的答案。