当前位置: 首页 > 知识库问答 >
问题:

在头上保留UITableView填充,但在IOS7上的分隔符中不保留

孙绍辉
2023-03-14

在iOS7上的过渡分离器左侧有15px填充。我知道我可以在xib文件的UITableView设置中删除此填充与分隔符插入功能,但我需要保持标题文本与填充。怎么做呢?

默认:

自定义分隔符插入为0:

我需要保留如图2所示的分隔符,但标题中有如图1所示的“2013”。

共有3个答案

鄢修德
2023-03-14

UITableView有一个名为viewForHeaderInSect的委托方法。如果删除填充,则在委托方法中添加填充并返回节标题视图。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(tableView.frame), 30)];
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(15, 5, 200, 25)];

    // 15 pixel padding will come from CGRectMake(15, 5, 200, 25).
    label.text = @"2013";
    [view addSubview: label];
    return view;
}

您可以随时设计您的标题视图。要设置tableView标头的高度,请使用:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;

希望它能帮助你……)

燕琛
2023-03-14

对于Separator,您可以通过故事板进行设置

对于页眉,创建如下自定义页眉

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
  UIView *viewHeader = [UIView.alloc initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 28)];
  UILabel *lblTitle = [UILabel.alloc initWithFrame:CGRectMake(6, 3, 136, 21)];

  [lblTitle setFont:[UIFont fontWithName:@"HelveticaNeue" size:13]];
  [lblTitle setTextColor:[UIColor blackColor]];
  [lblTitle setTextAlignment:NSTextAlignmentLeft];
  [lblTitle setBackgroundColor:[UIColor clearColor]];
  [viewHeader addSubview:lblTitle];

  return viewHeader;
}

给它任何特定的高度。给它任何文本。为包含您的年份的部分标题创建一个数组

凤棋
2023-03-14

使用SWIFT和STORYBOARD

在故事板中,您可以为TableView(标头)和单元格(分隔符)设置不同的分隔符输入。

通过选择故事板中的单元格并设置以下内容,将单元格的分隔符插图设置为0:

然后,通过在序列图像板中选择TableView并设置以下内容,将TableView(标题)的分隔符插入设置为15:

可选:

您可能还需要以编程方式将单元格上的边距设置为零,以确保分隔符始终从左到右。如果需要,请在表视图控制器的swft文件中使用此代码:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier("YOURCELL", forIndexPath: indexPath) as! UITableViewCell

    // THIS IS THE IMPORTANT PART...
    cell.layoutMargins = UIEdgeInsetsZero
    cell.preservesSuperviewLayoutMargins = false

    return cell

}
 类似资料:
  • 问题内容: 这是解释此问题的最简单方法。这是我正在使用的: 这就是我想要的: 原因是我想将字符串拆分为标记,对其进行操作,然后再次将其放回原处。 问题答案:

  • 我希望能够根据子字符串分隔符拆分字符串,在分隔符子字符串的第一个字符之前开始拆分。现在: 将给我,但我希望得到

  • 问题内容: 我需要正则表达式的帮助来解决以下问题: 我有一个字符串,例如“ 1£23 $ 456 $£$” 当我拆分它时,我希望字符串数组中的输出包含: 有人对如何最好地解决这个问题有任何想法吗?该解决方案需要满足以下附加要求: 也各执分隔符:,,,和 非定界符字符只是在定界符前带有可选空格的数字。 任何此类空格都是值的一部分,而不是分隔符本身。 问题答案: 使用更强大的功能代替。下面的代码应该可

  • 问题内容: 我试图将指令分离到另一个文件,而不必声明一个新模块-不这样做: 只是 : angular.module(’myapp.directives’)。directive(’‘ myapp.directives模块存在于另一个文件中,并且工作正常。但是,当我尝试在上面显示的另一个文件中使用它(不带)时,它将失败。 遵循此答案它认为我的方法应该可行,但是由于某种原因它失败了。 问题答案: 首次声

  • 从iOS7开始,在我的的顶部有额外的空间,它们具有样式。 这里有一个例子: tableview从第一个箭头开始,有35个像素的无法解释的填充,然后绿色标题是返回的(其中节为0)。 有人能解释一下这35像素的数量是从哪里来的吗?我如何在不切换到的情况下摆脱它?

  • 问题内容: 我有一个字符串: 我想用分隔符和一个特殊字符分隔此字符串。 为此,我正在使用: 如何保留定界符? 问题答案: 使用(正)前瞻,以便正则表达式断言特殊字符存在,但实际上并不与之匹配: 实际观看: