编辑表行时保持iOS表节标题视图位置

时间:2015-02-04 06:30:06

标签: ios

通过向左滑动编辑iOS表格行时,节目标题视图位置也会向左移动。有没有办法在编辑表行时保持节头视图的位置?

4 个答案:

答案 0 :(得分:1)

默认情况下(在主 - 细节应用程序上),部分标题不会移动,可以通过按下编辑按钮向左滑动单元格或进入编辑状态。

要看到这一点,请为Master-Detail创建一个新的Xcode项目。快速给出部分的方法:

  1. numberOfSections更改为return 3

  2. numberOfRowsInSection更改为self.objects.count / 3

  3. 更改titleForHeaderInSection:以返回[NSString stringWithFormat:@"Section %li", (long)section];

  4. 将插入新对象的最后一行更改为[self.tableView reloadData]; //commenting: [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

  5. 您可以在dropbox.com/sh/53t52r9lp5defvl/AAD4gRnTOrLrkEIeTJoIUvK9a?dl=0看到此结果。由于这是默认行为,因此必须使其他内容导致标题滑动。

答案 1 :(得分:0)

你可以尝试这个技巧,每个部分都有行之前有空的部分。因此,只需隐藏当前行节标题,但显示前节标题。因此,当您操作当前行时,前一节不会受到影响。

答案 2 :(得分:0)

问题是我使用UITableViewCell用于viewForHeaderInSection而不是UITableViewHeaderFooterView。使用UITableViewHeaderFooterView可以解决此问题。非常感谢@MichaelSand!

答案 3 :(得分:-1)

SWIFT2.0

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let  headerView : UIView = UIView(frame: CGRectMake(0, 0, 704, 30)) //write frames as your requirement 

    headerView.backgroundColor = UIColor(red: 61/255, green: 133/255, blue: 167/255, alpha: 1)

    let headerLabel: UILabel = UILabel()
    headerLabel.frame = CGRectMake(0, 0,704, 30)
    headerLabel.backgroundColor = UIColor.clearColor()
    headerLabel.textAlignment = NSTextAlignment.Center
    headerLabel.font = UIFont.boldSystemFontOfSize(17)
    headerLabel.textColor = UIColor.whiteColor()
    headerLabel.text = "Section Header"
    headerView.addSubview(headerLabel)

    return headerView
}