- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试在 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 项将占据整个屏幕的高度:
但是,如果您只包含一行,它会将标题模糊/组合成“点”。尽管其中一些点代表单个项目,但它们遍布整行。我的猜测是,Apple 认为如果他们只将中间的两个对象与一个点组合在一起,那看起来会很奇怪。这是同一张表,但有 37 个部分标题:
即使第 37 项不会导致它使用整个屏幕高度(因为您的空白不会占用与字母一样多的垂直空间),操作系统仍会将它们组合起来,因为它假定第 37 项不会适合。
因此,为了回答您的问题,“空白”或“空项”技巧仍然有效,但前提是您的真实项 + 空项加起来 <= 36。
至于如何“纠正”这个问题,你的选择是有限的。你可以在整个字母表中放置 10 个或更少的空对象以最大化空间,但这看起来很奇怪(一些字母会被分组,然后是一个空格,然后是一个组,一个空格,等等)并且会更难在用户实际点击其中一个部分索引标题时进行处理。
另一种选择是增加索引标题的字体大小,其中一位发帖人在您在问题中链接的帖子的答案中建议这样做。从它的完成方式和需要调用该方法的次数来看,这似乎非常骇人听闻。
第三个选项,也是我建议的选项,是按原样接受完整的字母表。它已经占据了绝大部分的垂直空间,并且将更加符合其他应用程序显示此控件的方式。另外,您不必覆盖 tableView:sectionForSectionIndexTitle:atIndex:
。而且您不必为不同的屏幕尺寸返回不同的标题。
关于ios - sectionIndexTitlesForTableView 中字母之间的间距,空对象技巧不再起作用了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25853106/
这个问题在这里已经有了答案: Why should there be spaces around '[' and ']' in Bash? (4 个回答) 3年前关闭。 作为初学者,我没有在任何地方找
我有一个程序,我在其中输入 Java 程序来检查输入的字符串是否为回文。我有 2 个问题正在发生,我似乎一辈子都无法解决。 我已经输入了代码,这样它会告诉我它是否是一个回文,当所有小写字母不涉及空格时
table { border: 0; padding: 0; border-collapse: collapse;
我有 10 个单元格,其中第 6 个单元格的宽度必须与其他单元格不同。我试图在流委托(delegate)方法中更改它。但是从第 7 个单元格到第 10 个单元格的间距出了点问题。 func coll
我只是希望将这些新闻发布很好地隔开,以便在每次发布之间留出空隙。我在下面附上了一张图片来解释。我试图增加下面的填充,但这没有用。感谢您的帮助 .headline { position: absolut
如何使用 css 删除表格结构中烦人的单元格间距和/或填充?如果解决方案在 IE7-9、Firefox 和 Chrome 中有效,请加倍支持! 为什么CSS这么难!真让人抓狂! 最佳答案 通常,在该表
我在我正在使用的网站上设置了按钮。我想在按钮外创建一个 2px 的边框,有一点间距。请参见设计图像。 我可以创建边框,但不能创建边框之外的间距。这是当前的开发站点。按钮是第一个图形。 到目前为止我已经
我正在网站上生成元素符号列表(通过使用 jquery 自动完成功能)和我在网站中使用响应式网页设计。 我想在每个列表项后留一个空格。为此,我添加了以下 CSS: li { margin-b
我在格式化我的 HTML 页面时遇到困难。 正如您从源代码中看到的那样,它是一个表格,其中每一行都包含由我的网络应用程序动态填充的格式化记录列表。如果其中一列有空值,我想保留行的格式,所以我基本上应该
我一直致力于设计一个具有三个链接的跨移动设备宽度的设计。我不明白为什么我不能得到正确的间距。什么看起来不对劲? 设计如下: 下面是编码版本的样子: 这是我的 CSS: .b-nav-Wrapper {
我需要在 matplotlib 中生成一大堆垂直堆叠的图。结果将使用 savefig 保存并在网页上查看,所以我不在乎最终图像有多高,只要子图间隔开,这样它们就不会重叠。 无论我允许这个数字有多大,子
我需要在 matplotlib 中生成一大堆垂直堆叠的图。结果将使用 savefig 保存并在网页上查看,所以我不在乎最终图像有多高,只要子图之间有间距,不重叠即可。 无论我允许图有多大,子图似乎总是
是否可以在 BorderPane 上设置节点之间的间距? ? Swing 等效项将是 BorderLayout 上的 hgap 和 vgap . 我在文档中没有找到任何内容,我能想到的唯一可行的解
我有一个基于日历的应用 我希望用户能够通过捏合来放大和缩小日历。这是我的代码: let p = UIPinchGestureRecognizer(target: self, action: #sele
我在为 Android 编写一段代码时遇到问题。我使用的是eclipse开发环境。我想要完成的是将一周中的日子均匀地分布在表格的第一行(有六行)。我不知道如何才能使这些单词真正散开,而不是仅仅粘在一起
我有一个基于日历的应用 我希望用户能够通过捏合来放大和缩小日历。这是我的代码: let p = UIPinchGestureRecognizer(target: self, action: #sele
我该怎么做才能对齐此代码中的所有列?这是正确的还是......? import urllib.request from re import findall def determinarLlegadas
当使用垂直对齐的 BoxLayout 时,如何阻止组件随着包含的 JFrame 的增长而扩展,从而在底部留下额外的空间?我尝试了不同的布局,但很快就变得一团糟。我还尝试在面板底部添加胶水,但布局管理器
我正在尝试制作 cout #include int main() { std::cout << setw(4) << 1 << setw(4) << 2 << std::endl; } 输出
使用示例 http://developer.android.com/guide/tutorials/views/hello-tabwidget.html通过向布局添加 HorizontalScro
我是一名优秀的程序员,十分优秀!