当你点击UITableView中的一行时,该行会高亮显示并被选中。是否有可能禁用这个,所以点击一行什么都不做?
当前回答
最好的解决方案是使选择样式为None
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
但是,这里我们考虑的事实是,所选状态没有使用自定义图像。
其他回答
cell.selectionStyle = UITableViewCellSelectionStyleNone;
试着输入:
cell.selected = NO;
它将在需要时取消选择您的行。
在Swift3中…
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let r = indexPath.row
print("clicked .. \(r)")
tableView.cellForRow(at: indexPath)?.setSelected(false, animated: true)
}
你所要做的就是在UITableViewCell实例上设置选择样式:
objective - c:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
or
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
斯威夫特2:
cell.selectionStyle = UITableViewCellSelectionStyle.None
Swift 3和4.x:
cell.selectionStyle = .none
此外,确保你没有在你的表视图委托中实现-tableView:didSelectRowAtIndexPath:或者显式地排除你想要没有动作的单元格。
更多信息在这里和这里
swift 3的固定解决方案
cell.selectionStyle = .none
至少从iOS 6开始,你可以覆盖自定义单元格中的方法来阻止蓝色高亮。没有其他交互被禁用或影响。所有三个都必须被覆盖。
- (void) setHighlighted:(BOOL)highlighted
{
}
- (void) setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
}
- (void) setSelected:(BOOL)selected animated:(BOOL)animated
{
}
推荐文章
- 如何使用Xcode创建。ipa文件?
- 动态改变UILabel的字体大小
- 新的自动引用计数机制是如何工作的?
- 在iPhone上确定用户是否启用了推送通知
- 是否有可能禁用浮动头在UITableView与UITableViewStylePlain?
- 错误ITMS-9000:“冗余二进制文件上传。火车1.0版本已经有一个二进制版本上传。
- Swift -转换为绝对值
- 从父iOS访问容器视图控制器
- 自定义dealloc和ARC (Objective-C)
- 调整UITableView的大小以适应内容
- 在代码中为UIButton设置一个图像
- NSRange从Swift Range?
- UICollectionView中的单元格间距
- 我如何在我的iOS应用程序中每n分钟得到一个后台位置更新?
- 如何使用iOS创建GUID/UUID