Abh*_*nav 31 cocoa-touch uitableview uikit ios
我有一张普通风格的桌子,只有一个部分.我实现viewForHeaderInSection:了在节标题中添加自定义视图.
我无法在表格节标题视图和第一个单元格之间看到分隔线.[见附图]

我究竟做错了什么?
Jos*_*phH 41
正如Jeremy在他的回答中所说,iOS不会在页眉/页脚的上方/下方添加分隔符; 你可以使用UIView自己创建一条线.
以下是将标准查看分隔符视图添加到标题视图的代码:
CGRect sepFrame = CGRectMake(0, headerView.frame.size.height-1, 320, 1);
seperatorView = [[[UIView alloc] initWithFrame:sepFrame] autorelease];
seperatorView.backgroundColor = [UIColor colorWithWhite:224.0/255.0 alpha:1.0];
[headerView addSubview:seperatorView];
Run Code Online (Sandbox Code Playgroud)
如果您试图使它看起来像普通的表格视图单元格,您可能还需要在标题视图的顶部添加一个.
Jer*_*ler 34
自定义页眉和页脚在其下方/上方不包含分隔符.您需要在自定义视图中自己实现分隔符(或切换到分组样式,即使使用自定义页眉/页脚,也会在其上方和下方显示组的轮廓).
Usm*_*sar 11
如果你想只在表头和表第一行之间给出空间,那么你可以使用
在方法中 tableView:heightForHeaderInSection:(NSInteger)section
if(section ==0)
return 3; // (space u want to give between header and first row);
return 10; //(ur section header height)
Run Code Online (Sandbox Code Playgroud)
在方法中 tableView:viewForHeaderInSection:(NSInteger)section
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 3)];
headerView.backgroundColor = [UIColor clearColor]; // use your own design
return headerView;
Run Code Online (Sandbox Code Playgroud)
通过返回+1现有的行数,向要添加分隔符的部分添加一个额外的"隐藏"行tableView:numberOfRowsInSection:.然后添加以下方法:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if ( indexPath.section == sectionOfHiddenRow && indexPath.row == indexOfHiddenRow )
return 0.f;
else
return [super tableView:tableView heightForRowAtIndexPath:indexPath];
}
Run Code Online (Sandbox Code Playgroud)
如果您希望分隔符位于节的顶部(在标题之后),indexOfHiddenRow则将是0.如果你想要它在一个部分的底部(在页脚之前)它将是[self tableView:tableView numberOfRowsInSection:sectionOfHiddenRow] - 1.
现在在里面tableView:cellForRowAtIndexPath:,只需返回[UITableViewCell new]隐藏的行(它不会显示,所以不需要设置框架或任何东西).您可能需要-1在您的方法UITableViewDataSource和UITableViewDelegate方法中进行一些索引调整,但它可以工作(在iOS 7中测试),并保证一致的样式(不需要绘制自己的"假"分隔符 - 这是一个真正的系统绘制UITableView分隔符).
| 归档时间: |
|
| 查看次数: |
48960 次 |
| 最近记录: |