当表格在可见矩形中时,UITableView 部分标题不可见
Posted
技术标签:
【中文标题】当表格在可见矩形中时,UITableView 部分标题不可见【英文标题】:UITableView Section Headers not visible when table in visible rect 【发布时间】:2013-04-17 15:38:13 【问题描述】:我有一个 UIScrollView
和 3 个 UITableViews
水平堆叠。我使用顶部的选项卡控制器在这些表格视图之间切换。但是,当我切换到第二个或第三个选项卡并快速切换回第一个选项卡时,section headers
不会显示。当我滚动tableView
时,它们会显示。这些是custom headers
(jfyi)。当 tableView 可见时,我尝试调用 setNeedsDisplay
,但这无济于事,因为根据 Apple Docs:
如果您只是更改视图的几何形状,通常不会重绘视图。相反,它的现有内容会根据视图的 contentMode 属性中的值进行调整。重新显示现有内容可避免重绘未更改的内容,从而提高性能。
因为这里只有视图的几何形状发生了变化,所以没有帮助。这也发生在所有版本ios 5~6.1
以及模拟器和设备上。值得庆幸的是,这不会使应用程序崩溃,但它仍然是一个问题。有人可以帮忙吗?我附上图片供参考。首先显示问题,其次:滚动“head(er)less”tableview后
编辑:
我正在使用简单的scrollRectToVisible:animated:
在表格视图之间切换。这可以解决问题,但我只是观察到,当我设置 ...animated:NO
时,一切正常。问题发生在...animated:YES
【问题讨论】:
如果没有看到切换代码就很难回答,问题可能出在哪里。 @ilmiacs 我已经编辑了这个问题。 尝试使用UIPageViewController
而不是滚动视图。
我很抱歉,但这不是很有帮助。 UIPageViewController 可能很强大,但一个简单的 UIScrollView 对于滚动操作非常有用。
我在非常相似的情况下成功使用了UIPageViewController
。不同之处在于每个 TableView/Page 都有自己的控制器。这意味着您将承担绘制视图的责任,并且您的问题很可能会消失。决定此提示是否对您有帮助当然是您的个人决定。
【参考方案1】:
似乎显示和滚动的问题同时发生在相应的表格视图中。所以你可以在这里做的是:
-
移除滚动动画
或
只需将表格视图滚动到选项卡按下事件的顶部
或
只需重新加载可见的tableView
【讨论】:
以上是关于当表格在可见矩形中时,UITableView 部分标题不可见的主要内容,如果未能解决你的问题,请参考以下文章
当上边距不完全可见时,UITableView 单元格展开动画会发生变化