当你点击UITableView中的一行时,该行会高亮显示并被选中。是否有可能禁用这个,所以点击一行什么都不做?
当前回答
编辑:对于更新的Swift,它被更改为:
cell.selectionStyle = .none
更多信息请看这个: https://developer.apple.com/documentation/uikit/uitableviewcell/selectionstyle
如果有人需要斯威夫特的答案:
cell.selectionStyle = .None
其他回答
最好的解决方案是使选择样式为None
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
但是,这里我们考虑的事实是,所选状态没有使用自定义图像。
场景- 1
如果你不想在表视图中选择某些特定的单元格,你可以在cellForRow函数中为这些单元格设置选择样式。
objective - c
cell.selectionStyle = UITableViewCellSelectionStyleNone;
斯威夫特4.2
cell.selectionStyle = .none
场景- 2
禁用整个表视图的选择:
objective - c
self.tableView.allowsSelection = false;
斯威夫特4.2
self.tableView.allowsSelection = false
禁用UItableviewcell的高亮显示
cell.selectionStyle = UITableViewCellSelectionStyleNone;
并且不应该允许用户与单元格交互。
cell.userInteractionEnabled = NO;
我们可以编写这样的代码
cell.selectionStyle = UITableViewCellSelectionStyleNone;
但当我们有自定义单元格xib时,在该行上面给出警告
自定义单元格xib
我们需要从界面构建器中设置选择样式为None
而这是最好的和最简单的解决方案,以防止一行在选择期间显示高亮
cell.selectionStyle = UITableViewCellSelectionStyleNone;
我还想建议,偶尔可以简单地显示已选中的行,然后将其关闭。这将提醒用户确认他们打算选择的内容:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:NO];
...
}
推荐文章
- 如何删除默认的导航栏空间在SwiftUI导航视图
- 如何在iOS中使用Swift编程segue
- Swift -整数转换为小时/分钟/秒
- Swift:声明一个空字典
- 在成功提交我的应用程序后,“太多符号文件”
- 首先添加一个UIView,甚至是导航栏
- 我如何改变UIButton标题颜色?
- 如何从UIImage (Cocoa Touch)或CGImage (Core Graphics)获取像素数据?
- 在Swift中如何调用GCD主线程上的参数方法?
- NSLayoutConstraints是可动画的吗?
- iOS -构建失败,CocoaPods无法找到头文件
- CFNetwork SSLHandshake iOS 9失败
- 请求失败:不可接受的内容类型:文本/html使用AFNetworking 2.0
- 缺少推荐的图标文件-该包不包含iPhone / iPod Touch的应用程序图标,像素为“120x120”,png格式
- 以编程方式创建segue