一尘不染

更改UITableView节标题的字体大小

swift

有人可以指导我以最简单的方法更改UITableView节标题中文本的字体大小吗?

我使用以下方法实现了节标题:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

然后,我了解了如何使用此方法成功更改节标题高度:

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

我有使用此方法填充的UITableView单元格:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

但是,我对如何实际增加节标题文本的字体大小(或就此而言的字体样式)感到困惑?

有人可以帮忙吗?谢谢。


阅读 208

收藏
2020-07-07

共1个答案

一尘不染

不幸的是,您可能必须重写此方法:

在Objective-C中:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

在Swift中:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?

尝试这样的事情:

在Objective-C中:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

    UILabel *myLabel = [[UILabel alloc] init];
    myLabel.frame = CGRectMake(20, 8, 320, 20);
    myLabel.font = [UIFont boldSystemFontOfSize:18];
    myLabel.text = [self tableView:tableView titleForHeaderInSection:section];

    UIView *headerView = [[UIView alloc] init];
    [headerView addSubview:myLabel];

    return headerView;
}

在Swift中:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    let myLabel = UILabel()
    myLabel.frame = CGRect(x: 20, y: 8, width: 320, height: 20)
    myLabel.font = UIFont.boldSystemFont(ofSize: 18)
    myLabel.text = self.tableView(tableView, titleForHeaderInSection: section)

    let headerView = UIView()
    headerView.addSubview(myLabel)

    return headerView
}
2020-07-07