iOS:如何让 UITableView 将其单元格绘制出边界?

Posted

技术标签:

【中文标题】iOS:如何让 UITableView 将其单元格绘制出边界?【英文标题】:iOS: How to let UITableView draw its cells out of its bounds? 【发布时间】:2013-07-24 13:47:12 【问题描述】:

我有一个UITableView,其中有我想在其自身范围之外绘制的单元格。我想要这个的原因是因为在 ios 7 中键盘是半透明的,所以我希望通过键盘可以看到 tableview 的内容。

我通过UIScrollView 成功完成了同样的任务。我只需将clipsToBounds 设置为NO 就可以了!

我知道为什么UITableView 不能使用相同的功能,因为它使用了巧妙的细胞重用技巧。这意味着在顶部滚动超出范围的单元格将移动到底部以便在那里重复使用(反之亦然)。

所以我想我想要一种方法来告诉UITableView 来扩展可见单元格的数组或其他东西。有没有人有一个聪明的技巧来做到这一点?

【问题讨论】:

你有什么理由不简单地把桌子变大吗? 是的,因为那样你将永远无法滚动到底部,因为部分表格视图将位于键盘后面。 向您展示我的意思:在 iPad 上打开“信息”。松开键盘并将其移动到屏幕中间。与某人进行长时间的对话。一直向上滚动。您可以看到滚动视图已调整到键盘,因为它已调整大小。但是,如果您向上滚动,您也会看到键盘下方的消息! 【参考方案1】:

我认为实现这一点的最佳方法是简单地扩大表格并将表格的contentInset 设置为具有足够的底部填充,以便您可以将整个表格滚动到视图中。

我认为这正是 contentInset 的用途。

【讨论】:

有效!我唯一的问题是:滚动条现在没有正确对齐。我希望滚动条只在键盘上方可见,而不是在键盘下方。就像在消息应用中一样。 哦,我在文档中找到了解决方案:我还必须设置 scrollIndicatorInsets。完美的!谢谢!!

以上是关于iOS:如何让 UITableView 将其单元格绘制出边界?的主要内容,如果未能解决你的问题,请参考以下文章

在 IOS Objective C 中,如何让单元格自动调整其子 UITableView 的内容大小

ios试图让文本剪辑超出uitableview单元格的范围

具有自动布局的 UITableView 中的动态单元格高度

如何让 UITableView 在动态高度单元格中滚动到底部?

iOS Swift:在自定义 UITableView 单元格中更新二维数组时获取重复值

UITableView以编程方式调用滑动操作