在iOS 11中,我注意到在Control Center中他们有一个标题视图,它在底部和tableview单元格之间有空格。你会如何实现这一目标? heightForHeaderInSection仅更改标题顶部与其上方的高度之间的高度,但不更改底部和tableview之间的空间。
更新: 以下代码对我来说很有意思。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 15, tableView.frame.size.width - 30, 50)];
headerLabel.text = @"Text goes here";
headerLabel.numberOfLines = 0;
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.textAlignment = NSTextAlignmentLeft;
[headerLabel setFont:[UIFont fontWithName:@"Helvetica Neue" size:12.0]];
// I could not figure out the exact text color :(
[headerLabel setTextColor:[UIColor headingTextColor]];
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, headerLabel.frame.size.width, 200)];
[headerView addSubview:headerLabel];
return headerView;
}
答案 0 :(得分:1)
我会尝试通过实现tableView(_:viewForHeaderInSection:)
并提供将用作标头的自定义视图来实现。在那里你添加一个标签作为子视图,并根据需要定位它。
tableView(_:viewForHeaderInSection:)
适用于UITableViewAutomaticDimension
,但如果您事先知道标题高度,则可以将其与heightForHeaderInSection
结合使用。