【问题标题】:Hiding UITableViewCell separator for individual cells隐藏单个单元格的 UITableViewCell 分隔符
【发布时间】:2013-11-29 10:25:14
【问题描述】:

我的大部分单元格都需要一个 UITableViewCell 分隔符,但其中一些应该被隐藏。

设置方式为self.tableView.separatorStyle,适用于每个单元格。

一个繁重的工作是禁用它,然后将其作为 UIView 手动绘制到单元格上,但我不想去那里。

我怎样才能删除单个单元格的分隔符?

【问题讨论】:

  • 我猜你必须在每个单元格中绘制自己的分隔符。

标签: ios objective-c uitableview


【解决方案1】:

您可以自定义单元格并在此单元格中添加分隔符,这样您就可以管理您的单元格分隔符。或者您可以 addSubViewUIView 作为单元格的分隔符,如 iPatel 的 答案,但要注意内存问题。

【讨论】:

    【解决方案2】:

    对不需要的单元格使用不同的ReUseIdentifierseparatorStyle。不要在此单元格上绘制任何内容。

    【讨论】:

      【解决方案3】:

      添加自定义视图作为分隔符需要做很多工作。除了添加属性、设置约束等,您还需要考虑匹配默认分隔符的颜色和线宽(1.0 / view.window.screen.scale 所以它是一个像素高,而不是一个点)。

      使用默认分隔视图更容易,并通过设置插入隐藏它。例如,打开表格的分隔符,然后在您的 UITableViewCell 子类中执行以下操作:

      var showsSeperator: Bool = true {
          didSet {
              let leftInset: CGFloat
              if showsSeperator {
                  leftInset = layoutMargins.left
              } else {
                  leftInset = 1000  // Out of site.
              }
              separatorInset = UIEdgeInsets(top: 0, left: leftInset, bottom: 0, right: 0)
          }
      }
      

      【讨论】:

      • 请注意,这不仅会影响分隔视图的插入,还会影响默认标签的插入(例如textLabeldetailTextLabel 等)跨度>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      相关资源
      最近更新 更多