【问题标题】:How can I keep UITableView content from being clipped when scrolled horizontally?水平滚动时如何防止 UITableView 内容被剪切?
【发布时间】:2011-12-10 14:54:24
【问题描述】:

我们正在使用 Monotouch 开发一个特定于 iPad 的应用程序,但我怀疑同样的问题也适用于标准的 xcode/cocoa 应用程序。

我们的问题是我们的 UITableViews 必须水平和垂直滚动(请不要建议我们更改设计,因为这不是一个可行的选择)。

通过将 ContentSize 设置为适当的大小(我们将宽度设置为包含数据的宽度,将高度设置为 UITableView 的高度),我们可以轻松地让 UITableView 以这种方式运行。

但是,这样做有一个令人不快的副作用:当水平滚动时,标题视图和分隔每行的线会被裁剪为框架的大小。有趣的是,内容继续显示,尽管我怀疑这是通过添加到单元格内容视图的子视图显示我们的数据的功能。

我几乎尝试了 UITableView 中的所有设置组合(剪辑、设置边界、不透明度等),但均无济于事。

我们已经验证,如果我们将 UITableView 嵌入到 UIScrollView 中,这将正常工作,但我们不希望采用这种方法,因为无法重用单元格(这些表格视图可能会提供大量数据)和其他原因(苹果拒绝)。

谁能指出我们正确的方向?我不明白为什么这么难。

【问题讨论】:

    标签: ios ipad uitableview interface-builder horizontal-scrolling


    【解决方案1】:

    我不保证以下方法会起作用,但您可以尝试以下方法。

    要修复标题视图,您需要将标题内容添加到虚拟 containerView,然后将此虚拟 containerView 用作表 headerView。 现在,您应该将containerView.clipsToBounds = FALSE 和标题内容的框架设置为所需的宽度(如果您知道的话)。

    另外,请确保标题内容没有设置自动调整大小的掩码。无论 containerView 发生什么,我们都不希望它改变它的框架。

    这背后的想法是 tableView 将调整你的 containerView 框架的大小,但不会改变你的标题内容框架。通过将剪辑设置为 FALSE,您应该让您的内容溢出到 containerView 之外...瞧...希望

    要修复分隔线,我能想到的唯一解决方案是在单元格中制作自己的分隔线。然后,您可以完全控制其大小。

    我在标题视图中做了类似的事情,并且我设法让内容溢出。

    【讨论】:

    • 这是非常好的信息,非常感谢!它肯定解决了我的下一个问题(不滚动标题与内容)并引导我解决剪裁标题问题。基本上,我将包含子视图的标签的背景设置为不透明以解决另一个问题(背景颜色显示),看来这就是导致剪辑的原因。分隔线仍然是一个问题,但这是我现在可以忍受的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2015-02-16
    • 2017-06-13
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多