gpt4 book ai didi

ios - sectionIndexTitlesForTableView 中字母之间的间距,空对象技巧不再起作用了吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:15:48 26 4
gpt4 key购买 nike

我正在尝试在 sectionIndexTitlesForTableView 中的字母之间添加空格以占用所有屏幕高度。我找到了这个方法:

UITableView section index spacing on iOS 7

但它不起作用。有什么变化吗?

这是我的实现(我只想在 iPhone 5 上实现):

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {


float ScreenHeight=[[UIScreen mainScreen] bounds].size.height;
if (ScreenHeight==568) {

return[NSArray arrayWithObjects:@"A",@" ", @"B",@" ", @"C",@" ", @"D",@" ", @"E",@" ", @"F",@" ", @"G",@" ", @"H",@" ", @"I",@" ", @"J",@" ", @"K",@" ", @"L",@" ", @"M",@" ", @"N",@" ", @"O",@" ", @"P",@" ", @"Q",@" ", @"R",@" ", @"S",@" ", @"T",@" ", @"U",@" ", @"V",@" ", @"W",@" ", @"X",@" ", @"Y",@" ", @"Z", nil];
}
else {
return[NSArray arrayWithObjects:@"A", @"B", @"C", @"D", @"E", @"F", @"G", @"H", @"I", @"J", @"K", @"L", @"M", @"N", @"O", @"P", @"Q", @"R", @"S", @"T", @"U", @"V", @"W", @"X", @"Y", @"Z", nil];

}

}

编辑

每个字母添加一个空对象创建一个“合成 sectionIndexTitlesForTableView View ”,不是所有的字母都显示在右边,但只有一个人。我认为这是一个太长的列表的默认行为......无论如何,如果我删除一些空对象(例如我只从数组中删除最后 5 个空对象)“合成 View ”消失但字母间距在 sectionIndexTitlesForTableView不要改变(与我在没有空对象的数组中的间距相同),即使在 A 和 B 之间我留下了一个空对象。

最佳答案

问题在于,在 iOS7 的 4"iPhone 屏幕上,带导航栏的全屏表格 View 的节索引标题中可以存在的最大对象数是 36。过去,它们将不适合,它们将开始“组合”成您可能会看到的点。这可以通过几个屏幕截图很容易地显示出来:

36 项将占据整个屏幕的高度:

36 Section Titles

但是,如果您只包含一行,它会将标题模糊/组合成“点”。尽管其中一些点代表单个项目,但它们遍布整行。我的猜测是,Apple 认为如果他们只将中间的两个对象与一个点组合在一起,那看起来会很奇怪。这是同一张表,但有 37 个部分标题:

37 Section Titles

即使第 37 项不会导致它使用整个屏幕高度(因为您的空白不会占用与字母一样多的垂直空间),操作系统仍会将它们组合起来,因为它假定第 37 项不会适合。

因此,为了回答您的问题,“空白”或“空项”技巧仍然有效,但前提是您的真实项 + 空项加起来 <= 36。


至于如何“纠正”这个问题,你的选择是有限的。你可以在整个字母表中放置 10 个或更少的空对象以最大化空间,但这看起来很奇怪(一些字母会被分组,然后是一个空格,然后是一个组,一个空格,等等)并且会更难在用户实际点击其中一个部分索引标题时进行处理。

另一种选择是增加索引标题的字体大小,其中一位发帖人在您在问题中链接的帖子的答案中建议这样做。从它的完成方式和需要调用该方法的次数来看,这似乎非常骇人听闻。

tl;博士:

第三个选项,也是我建议的选项,是按原样接受完整的字母表。它已经占据了绝大部分的垂直空间,并且将更加符合其他应用程序显示此控件的方式。另外,您不必覆盖 tableView:sectionForSectionIndexTitle:atIndex:。而且您不必为不同的屏幕尺寸返回不同的标题。

enter image description here

关于ios - sectionIndexTitlesForTableView 中字母之间的间距,空对象技巧不再起作用了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25853106/

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