UITableView部分索引针对iOS 7中的错误单元格,导航栏下的顶行隐藏

UITableView部分索引针对iOS 7中的错误单元格,导航栏下的顶行隐藏,第1张

概述我有一个带有UITableView的应用程序,它通过NSFetchedResultsController提供数据.表视图按字母顺序排序,并按第一个字母分为几个部分. 在我的手机上升级到iOS 7时,我注意到部分索引标题无法正常工作: 行动: 点击部分索引标题“M”将列表滚动到以字母M开头的项目. 预期成绩: 表视图滚动到部分M中的第一个项目,部分标题仍然可见. 实际结果: 表视图滚动到部分M中的第 我有一个带有UItableVIEw的应用程序,它通过NSFetchedResultsController提供数据.表视图按字母顺序排序,并按第一个字母分为几个部分.

在我的手机上升级到iOS 7时,我注意到部分索引标题无法正常工作:

行动:
点击部分索引标题“M”将列表滚动到以字母M开头的项目.

预期成绩:
表视图滚动到部分M中的第一个项目,部分标题仍然可见.

实际结果:
表视图滚动到部分M中的第二个项目,部分标题不可见.第一个项目存在,但就在可见框的上方.

在iOS 6上,它都按预期工作.

另一方面,顶行和底行下方的橡皮筋效果也有一个奇怪的行为,通过“拉伸”橡皮筋,我可以看到第一行,但是一旦我发布它,第一行行再次滚动屏幕外.同样对于底行.

更新

这很可能是由从Xcode 4.6自动布局迁移到Xcode 5自动布局引起的,我听说这是不兼容的.也许有些约束变坏了?我仍在努力寻找原因.

Interface Builder中的场景包含一个UIVIEw,它包含两个子视图 – 两个UItableVIEws位于彼此之上.可见的两个视图中的哪一个通过导航栏顶部的UISegmentedControl切换.在底部有一个标签栏.

我已经在IB中手动布局了界面,所以它们都是全屏的,这是单独完成的,即没有约束指定相同的宽度/高度等.我使用的约束是无; autolayout建议的约束;我也尝试在两个tablevIEws上制作contentInsets,正如@ duci9y所建议的那样.

根据@Popara的建议,导航栏设置为不透明.

结束说明

如果我能理解如何将tablevIEws设置为全屏,除了收缩以确保它们不会低于导航栏和标签栏.

解决方法 这对我来说听起来不像是一个自动布局问题.在包含表视图的视图控制器中,运行self.automaticallyAdjustsScrollVIEwInsets = YES;在vIEwDIDLoad中.

表视图控制器是否在导航控制器上推送?那应该就是你需要做的一切.

如果没有,您需要阅读属性edgesForExtendedLayout和topLayoutGuIDe.如果视图控制器包含自己的导航栏,则需要覆盖后者.

topLayoutGuIDe告诉你的视图控制器插入任何滚动视图应该有多少顶级内容(这适用于表视图,因为它们从滚动视图继承).因为在iOS7上,您的表格视图位于导航栏后面(因为它是半透明的),其顶部布局指南必须设置在导航栏的下方.

如果视图层次结构更复杂(表视图不是视图控制器视图的直接子视图),则可以手动设置内容插入:

tableVIEw.contentInset = UIEdgeInsetsMake(CGRectGetMaxY(navigationbar.frame),0);
总结

以上是内存溢出为你收集整理的UITableView部分索引针对iOS 7中的错误单元格,导航栏下的顶行隐藏全部内容,希望文章能够帮你解决UITableView部分索引针对iOS 7中的错误单元格,导航栏下的顶行隐藏所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1054764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存