我正在实现一个UITableView,它具有右手大小的索引以及节标题。我基本上实现了一个股票NSFetchedResultsController,如Apple的文档中所描述的。 UITableView包含在带有黑色半透明导航栏的UINavigationController中。我将顶部内容和滚动条插图设置为44以补偿表格的导航栏重叠。即使设置了插图,我在Black Translucent Nav Bar中使用UITableView也遇到了一些问题,我相信这是相关的。
当我触摸索引列中的某个项目以将我带到该部分时,部分标题“挂起”在正确的位置(在导航栏的正下方对接),但第一个单元格似乎向上移动了一个。我认为桌子不知道导航条重叠,所以如果标题位于窗口框架的顶部但是在标题下方(如果这是有意义的话),它将定位第一个单元格。这很难解释所以我附上截图来帮助说明。隐藏的第一个'Billy'应该位于第二个比利的位置,它位于标题'B'下面。
(哎呀,发布图片的菜鸟太大了。http://dontgoplastic.com/temp/uitableview.png)
第二个问题与同一个表有关,但是对于selectRowAtIndexPath:animated:scrollPosition:。如果我尝试将'UITableViewScrollPositionNone'用于'scrollPosition'并将indexPath设置为低于当前可见屏幕的值,则会将表格向下移动(如预期的那样),但我所假设的是44像素。同样,我认为该表认为单元格在视图中,但没有考虑插入。
希望我只是俯瞰一个简单的财产。
感谢您的时间
答案 0 :(得分:2)
我仍然不是100%出了什么问题,但我可以通过继承UITableView并编辑setContentOffset来修正它:动画:像这样:
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated {
CGPoint newOffset = CGPointMake(contentOffset.x, contentOffset.y - 44);
[super setContentOffset:newOffset animated:animated];
}
希望这有助于解决我的问题或帮助其他人解决问题。
感谢。