选择单元格时,如何阻止 UIView 的背景颜色消失?
Posted
技术标签:
【中文标题】选择单元格时,如何阻止 UIView 的背景颜色消失?【英文标题】:How can i stop the background colour of a UIView from disappearing when cell is selected? 【发布时间】:2017-09-01 13:16:21 【问题描述】:我有一个 tableView,其中包含一个标签、图像和 UIVIew,背景颜色为红色。
这是我的 tableView 中一行的图片,其中显示了一个标签、图像和一个具有红色背景色的 UIView
但是每当我选择一个单元格时,UIVIew 的背景颜色就会消失,我只能看到标签和图像
当我选择它时这是同一行
我想知道是否有办法在选择单元格时阻止视图的背景颜色消失。
【问题讨论】:
cell.seletionStyle = .none aur refer ***.com/questions/30233468/… 【参考方案1】:这是因为单元格选择样式设置为默认值,请将UITableViewCell
选择样式更改为无。
目标 C:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
斯威夫特 3:
cell.selectionStyle = .none
如果您想通知用户已选择单元格,请维护一个包含 indexpath 对象列表的 NSArray
属性。
更新委托方法上的NSArray
didSelectRowAtIndexPath 方法。
如果NSArray
中存在indexpath,则在cellForRowAtIndexPath方法中更改背景颜色
最后在 didSelectRowAtIndexPath 上重新加载选中的行。
【讨论】:
好的,谢谢!但是出于用户交互的目的,我如何向用户反馈他/她做出了选择?【参考方案2】:试试这个:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
//Just add this below line didSelectRowAt
tableView.deselectRow(at: indexPath, animated: true)
【讨论】:
【参考方案3】:稍微好一点。我提取自MBProgressHUD/Demo
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^
[tableView deselectRowAtIndexPath:indexPath animated:YES];
);
【讨论】:
以上是关于选择单元格时,如何阻止 UIView 的背景颜色消失?的主要内容,如果未能解决你的问题,请参考以下文章
选择单元格时,更改 QTableView 中图标的颜色突出显示
使用javascript,当我单击表格单元格时如何获取它的背景颜色?