当选择单元格时,如何阻止UIView的背景颜色消失?

时间:2017-09-01 13:16:21

标签: ios swift uitableview uiview

我有一个tableView,其中包含标签,图像和红色背景颜色的UIVIew。

这是我的tableView中的一行图片,其中显示了一个标签,图像和一个红色背景颜色的UIView

This is a picture of a row in my tableView which displays a label, image and a UIView that has a red background colour

但每当我选择一个单元格时,UIVIew的背景颜色就会消失,我所能看到的只是标签和图像

当我选择它时,这是同一行

This is the same row when I select it

我想知道是否有办法阻止视图的背景颜色在选择单元格时消失。

3 个答案:

答案 0 :(得分:0)

正在发生这种情况,因为单元格选择样式设置为默认值,将UITableViewCell选择样式更改为无。

目标C:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

斯威夫特3:

cell.selectionStyle = .none

如果要通知用户已选择单元格,请维护包含indexpath对象列表的NSArray属性。

更新委托方法didSelectRowAtIndexPath方法的NSArray

在cellForRowAtIndexPath方法中,如果NSArray

中存在indexpath,则更改背景颜色

最后在didSelectRowAtIndexPath上重新加载选定的行。

答案 1 :(得分:0)

试试这个:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
      //Just add this below line didSelectRowAt
      tableView.deselectRow(at: indexPath, animated: true)

}

答案 2 :(得分:0)

好一点。我从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];
       });
   }