我有一个带有标题标题的几个部分的UITableView。
我还有一个表格的主标题。
我的问题是第0部分标题的标签触及该部分标题的顶部边缘,这与整个表格的标题相对应。这在其他地方不是问题,因为其他部分有一个小的页脚,所以在其他标题和上一部分中的最后一个单元格之间有额外的空间。
我无法弄清楚如何解决这个问题。
理想情况下,我只是在表的标题和第一部分的标题之间添加空格,但是查看可用的tableview / delegate方法,这是不可能的。
我的第二个想法是将标题文本垂直居中于标题中。为此,我找到了viewForHeaderInSection方法。我尝试以下方法来访问标签,但是从这里开始我就停留在如何使它垂直对齐。所有NSTextAlignment选项似乎都是水平对齐,而不是垂直对齐。
(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
(UITableViewHeaderFooterView *view = (UITableViewHeaderFooterView *)[super tableView:tableView viewForHeaderInSection:section];
// center view.textLabel
return view;
}
有关最佳方法的任何提示吗?我是在正确的轨道上吗?试图在我的应用程序中润滑一些UI,并且每次表加载时看到这个文本都会碰到头部。
答案 0 :(得分:0)
截图确实有帮助,如果可以,请更新您的问题。
同时,如果我正确理解了问题,为什么不在你tableView.tableHeaderView
的内容之下添加一些保证金呢?
如果这不是一个选项,您可以在自己的示例中制作自己的自定义标题,而无需来调用super
(但我同意viewForHeaderInSection
是正确的方式去)。
看到您的屏幕截图后编辑
只需使用UITableViewDelegate
方法viewForHeaderInSection
和heightForHeaderInSection
- 这里有一些可以帮助您入门的代码:
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), 30)];
headerView.backgroundColor = [UIColor redColor];
UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectInset(headerView.bounds, 10, 0)];
[headerView addSubview:headerLabel];
headerLabel.text = @"Section header";
return headerView;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 30.0f;
}
答案 1 :(得分:0)
所以,我的解决方案最终是增加表格标题的高度,并在其中添加一个我视为标题的视图,所以额外的空间有点像标题的页脚,如果你将
我尝试过这个解决方案,但它没有用,因为我的TVC的viewDidLayoutSubviews方法和viewWillAppear方法都没有正确设置框架。解决方法是在调用我的方法添加渐变图层之前调用[myView layoutIfNeeded]。
我仍然认为应该有一个dang ol'表格标题和表格内容之间的填充值...