是否有功能设置表格视图的节标题,以使标题不会大写?

问题描述 投票:0回答:1

我创建了一个表格视图并设置了节标题。但是标题是大写的,我找不到使该节的标题正常的方法。我知道我们可以创建一个标签来避免使用设置标题大写的设置,但是我想知道是否有系统方法可以解决此问题。

这是旧代码:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return @"The Content";
}

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section {
    UITableViewHeaderFooterView *headerView = (UITableViewHeaderFooterView *)view;
    headerView.textLabel.font = [UIFont systemFontOfSize:12];
    headerView.textLabel.textColor = [UIColor lightGrayColor];
}

感谢Alok的回答,认为他的解决方案不是我想要的。但是它提醒我,我们实际上可以编辑- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section中的内容,从而可以解决大写问题。

这里是新代码:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return @"The Content";
}


- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section {
    UITableViewHeaderFooterView *headerView = (UITableViewHeaderFooterView *)view;
    headerView.textLabel.font = [UIFont systemFontOfSize:12];
    headerView.textLabel.textColor = [UIColor lightGrayColor];
    headerView.textLabel.text = @"The Content";
}

我们需要在- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section中再次设置tableview部分的内容,并且在- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section中的设置应该保持不变。

ios tableview
1个回答
0
投票

但是标题是大写的,我找不到使该节的标题正常的方法。

是的,是设计使然。

解决方案:

在委托方法下面实施,它应该可以解决您的问题。

func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    let titleView = view as! UITableViewHeaderFooterView
    titleView.textLabel?.text =  titleView.textLabel?.text?.capitalized
}
© www.soinside.com 2019 - 2024. All rights reserved.