ios 7 uitableview 所选单元格在 beginupdates 后失去边框

Posted

技术标签:

【中文标题】ios 7 uitableview 所选单元格在 beginupdates 后失去边框【英文标题】:ios 7 uitableview selected cell loses border after beginupdates 【发布时间】:2014-05-15 21:31:39 【问题描述】:

我正在使用[beginUpdated] 来展开和折叠我的表格视图中的单元格。按预期工作,但有副作用。所选单元格的上边框消失。要重新制作一个没有选择样式的表格视图。使用下面的代码,您将看到选择一行会使边框消失。有什么建议么?我尝试取消设置分隔符样式并重置为单行。我试过layoutIfNeeded

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

    [tableView beginUpdates];
    [tableView endUpdates];

这似乎是核心 SDK 错误,因为我在一个新项目中重现,除了上面的代码和无单元格选择样式之外什么都没有。

有什么解决办法吗?使用 1 px UIView 作为伪边框不是一个选项,因为 comps 需要组样式外观​​并确定可重复使用的单元格是否应该为每个单元格都具有嵌入或完整边框是不切实际的。

【问题讨论】:

【参考方案1】:

我通过在更新后取消选择单元格来解决此问题。

目标-C:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath

   [tableView beginUpdates];
   [tableView endUpdates];
   [tableView delesectRowAtIndexPath:indexPath]

斯威夫特:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
    tableview.beginUpdates()
    tableview.endUpdates()
    tableview.deselectRowAtIndexPath(indexPath, animated: true)

【讨论】:

以上是关于ios 7 uitableview 所选单元格在 beginupdates 后失去边框的主要内容,如果未能解决你的问题,请参考以下文章

UITableView:停止自动滚动超出所选位置

iOS - 使 UITableView 与自定义单元格在按钮单击时可编辑

UITableView 中的单元格在 iOS 中选择之前不会更新(swift)

为啥我的 UITableView 单元格在滚动时重叠?

uitableview 自定义单元格在向下滚动 uitableview 时丢失其内容

UITableView 单元格在向下滚动然后备份后消失