我有一个单元格要插入到UITableView的顶部。如何确保当用户单击单元格时,它没有显示蓝色的选定指示器?
我有一个单元格要插入到UITableView的顶部。如何确保当用户单击单元格时,它没有显示蓝色的选定指示器?
Answers:
要删除基于行索引选择任何表格单元格或特定表格单元格的能力,请使用 willSelectRowAt
func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? {
return nil
}
要简单地删除选择元素的UI效果,请将UITableViewCell的选择样式设置为UITableViewCellSelectionStyleNone
斯威夫特5:
selectionStyle = .none
cell.selectionStyle = UITableViewCellSelectionStyle.none
cell.selectionStyle = .none
要使每个单元完全无法选择一个单元,需要做两件事:
1-正如其他人所说:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
2-如下实现此委托方法:
// Called before the user changes the selection. Return a new indexPath, or nil, to change the proposed selection.
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
if(cell.selectionStyle == UITableViewCellSelectionStyleNone){
return nil;
}
return indexPath;
}
你可以做
cell.selectionStyle = UITableViewCellSelectionStyleNone;
对于Swift 3:
cell.selectionStyle = .none
迅捷5
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! UITableViewCell;
cell.selectionStyle = .none
}
tableView:didSelectRowAtIndexPath:
轻触单元格时仍会被调用。为了真正防止选择,您需要在您的表上实现tableView:willSelectRowAtIndexPath:,UITableViewDelegate
对于不可选择的行返回nil。