gpt4 book ai didi

objective-c - UITableView titleForHeaderInSection 显示全部大写

转载 作者:IT老高 更新时间:2023-10-28 11:39:03 26 4
gpt4 key购买 nike

我正在使用 titleForHeaderInSection 来显示 UITableView 部分的标题。它适用于 iOS6 SDK,但 iOS7 SDK 以所有大写字母显示标题。

我猜这是 Apple 更新的人机界面指南的一部分;那里的所有示例都显示全部大写的标题。此外,我 iPhone 上“设置”中的所有部分标题都全部大写。

但是,我想知道是否有办法解决这个问题。通常,如果这样可以提高一致性,我不介意显示大写字母,但是当我需要在部分标题中显示人名时,就有点尴尬了。

有人知道如何绕过大写吗?

最佳答案

是的,我们遇到了非常相似的问题,我自己的解决方案如下:

Apple UITableViewHeaderFooterView 文档(指向它的链接非常长,但您可以使用您最喜欢的搜索引擎轻松找到它)说您可以访问标题 View 的 textLabel,而无需通过 viewForHeaderInSection 方法格式化您自己的 View 。

textLabel A primary text label for the view. (read-only)

@property(nonatomic, readonly, retain) UILabel *textLabel Discussion Accessing the value in this property causes the view to create a default label for displaying a detail text string. If you are managing the content of the view yourself by adding subviews to the contentView property, you should not access this property.

The label is sized to fit the content view area in the best way possible based on the size of the string. Its size is also adjusted depending on whether there is a detail text label present.

通过一些额外的搜索,修改标签文本的最佳位置是 willDisplayHeaderView 方法(建议在 How to implement `viewForHeaderInSection` on iOS7 style? 中)。

所以,我想出的解决方案非常简单,只需在 titleForHeaderInSection 实际设置后对文本标签字符串进行转换:

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
//I have a static list of section titles in SECTION_ARRAY for reference.
//Obviously your own section title code handles things differently to me.
return [SECTION_ARRAY objectAtIndex:section];
}

然后只需调用 willDisplayHeaderView 方法来修改它的外观:

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
if([view isKindOfClass:[UITableViewHeaderFooterView class]]){
UITableViewHeaderFooterView *tableViewHeaderFooterView = (UITableViewHeaderFooterView *) view;
tableViewHeaderFooterView.textLabel.text = [tableViewHeaderFooterView.textLabel.text capitalizedString];
}
}

您可以在其中放入自己的“if”或“switch”子句,因为节号也会传递给该方法,因此希望它可以让您有选择地以大写单词显示您的用户/客户名称。

关于objective-c - UITableView titleForHeaderInSection 显示全部大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com