删除时多个原型单元格标题移动
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。即使您使用自动布局,您也必须在某些时候定义高度约束,因此它是您设计的一部分。如果您想为不同的设备型号设置不同的高度,则必须在自动布局中使用尺寸等级。以上是关于删除时多个原型单元格标题移动的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 iPhone UITableView 原型单元格图像水平移动?