删除时多个原型单元格标题移动

Posted

技术标签:

【中文标题】删除时多个原型单元格标题移动【英文标题】:multiple prototype cell header moves when deleting 【发布时间】:2016-07-26 20:49:08 【问题描述】:

我有两个原型单元。一种用于显示数据,另一种用于标题视图。

当我尝试删除我的常规单元格时。标题单元格随之移动。

当我尝试删除常规单元格时,我不想移动标题。

我已禁用标题原型单元格上的用户交互。它仍然在移动。在提交编辑风格中,我会立即返回标题原型单元格。它仍然在移动。我不知道还能做什么。请帮忙。

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 

    if tableView == upcomingTableView 

        if let headerCell = tableView.dequeueReusableCellWithIdentifier("headerCell") 

            headerCell.textLabel?.text = sectionNames[section]

            headerCell.detailTextLabel?.text = "Rs\(sum[section])"

            headerCell.detailTextLabel?.textColor = UIColor.blackColor()

            headerCell.backgroundColor = UIColor.lightGrayColor()

            return headerCell
        
    

    return nil

索引路径处的行单元格也是非常常规的代码。

【问题讨论】:

从您的表格视图委托方法中添加一些代码。 【参考方案1】:

更新答案:

创建一个 UIView 并将 tableViewCell 添加为子视图并返回 UIView。

Swift 中的解决方案:

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 

    if let headerCell = tableView.dequeueReusableCellWithIdentifier("headerCell") 

        //Create an UIView programmatically
        let headerView = UIView()

        headerCell.textLabel?.text = (section == 0) ? "Apple" : "Microsoft"
        headerCell.backgroundColor = UIColor.lightGrayColor()

        //Add cell as subview to UIView
        headerView.addSubview(headerCell)

        //Return the header view
        return headerView
    

    return nil


输出:

【讨论】:

感谢您的尝试,但内容视图会生成空白单元格。我还创建了新项目并尝试使用假数据。内容视图呈现空白区域。 @ApoorvMote:header View 与其他单元格一起移动的原因是因为它继承了 UITableViewCell 的特性,即编辑时向左滑动。是的,返回 cell.contentView 不起作用是因为我猜。我将使用示例 Swift 代码更新我的答案。 它修复了删除问题,但它给我带来了另一个问题。标题视图渗入表格单元格。我可以通过将标题视图高度硬编码为 44.0 CGFloat 来解决此问题。但我不喜欢硬编码价值。如何阻止标题视图渗入表格单元格? 是的,因为它采用为表格视图定义的默认单元格高度。您必须在索引路径处使用行的高度来处理高度,因为它是一个表格视图单元格。另一种方法是,如果您为标题视图单元格自定义表格视图单元格作为单独的 xib 或情节提要中的原型单元格,则您已从尺寸检查器自定义高度。 默认单元格高度为 44,与设备大小无关。如果您希望它是动态的,则必须使用带有自定义表格视图单元格的自动布局作为 Xib。即使您使用自动布局,您也必须在某些时候定义高度约束,因此它是您设计的一部分。如果您想为不同的设备型号设置不同的高度,则必须在自动布局中使用尺寸等级。

以上是关于删除时多个原型单元格标题移动的主要内容,如果未能解决你的问题,请参考以下文章

编辑行时 TableView 节标题移动

为啥我的 iPhone UITableView 原型单元格图像水平移动?

当原型单元不工作时如何使用segue

如何从具有多个单元格原型的 UITableView 中捕获单元格数据?

UITableView 中有多个原型单元格?

我可以将单个自定义单元格用于多个不同的单元格吗?