我创建了一个表格视图并设置了节标题。但是标题是大写的,我找不到使该节的标题正常的方法。我知道我们可以创建一个标签来避免使用设置标题大写的设置,但是我想知道是否有系统方法可以解决此问题。
这是旧代码:
- (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
中的设置应该保持不变。
但是标题是大写的,我找不到使该节的标题正常的方法。
是的,是设计使然。
解决方案:
在委托方法下面实施,它应该可以解决您的问题。
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
let titleView = view as! UITableViewHeaderFooterView
titleView.textLabel?.text = titleView.textLabel?.text?.capitalized
}