斯威夫特:明确表视图是可滚动的

Posted

技术标签:

【中文标题】斯威夫特:明确表视图是可滚动的【英文标题】:Swift: Make it obvious that a table view is scrollable 【发布时间】:2017-08-02 15:37:55 【问题描述】:

真的很奇怪的问题,但这里有。

我有一个包含一些自定义单元格的表格视图。在较大的设备上,它们都适合并且看起来很棒。

但在 iPhone 4 等较小的设备上,由于页面上的其他内容,表格视图会缩小,因此并非所有单元格都在视图中。

问题:

如果不实际滚动视图,就不可能知道还有其他单元格。

有没有办法解决这个问题?

谢谢。

【问题讨论】:

让你的单元格高度足够高,这样最后一个适合屏幕的单元格只有一半可见,这样用户就会知道他们应该滚动。 在屏幕底部添加一个不透明的图像,它覆盖在 tableview 上,给人一种隐藏某些内容并且用户需要滚动 table view 的印象。 这不是一个奇怪的问题,但也不是一个真正的编程问题。 ios 会隐藏滚动指示器,除非用户实际滚动(以及瞬间被告知要闪烁)。这使得发现任何可滚动内容变得困难。一般来说,这是 iOS 的问题。 好的,谢谢大家。我使用 Nikita 的想法让滚动指示器闪烁了几次,并且还让单元格稍微大了一点,所以在较小的设备上你可以看到最后一个单元格的 1/2。 【参考方案1】:

你可以用这个:

override func viewDidAppear(animated: Bool) 
    super.viewDidAppear(animated)
    self.tableView.flashScrollIndicators()   

【讨论】:

请注意,这是内置在 UITableViewController 中的。只有在向 UIViewController 添加表格时才需要这个。 我不确定这是否有效。我添加了它,但我什么也没看到。【参考方案2】:

您可以使用heightForRowAtIndexPath 计算单元格的高度,这样最后一个单元格就不会完全可见。看到一个单元格被中途截断是一个很好的指示,让用户感觉下面有更多内容。

【讨论】:

【参考方案3】:

我添加了这段代码:

tableView.contentOffset = CGPoint(x: 0, y: 200)

第一张卡片和最后一张购物车被截断,给人一种需要滚动的印象。

【讨论】:

以上是关于斯威夫特:明确表视图是可滚动的的主要内容,如果未能解决你的问题,请参考以下文章

滚动视图中不可滚动的表视图

滚动视图问题斯威夫特

什么样的滚动视图包含 2 个表视图和集合视图

斯威夫特:“冻结”在滚动视图中弹跳

设置行数后集合视图水平滚动? ios 斯威夫特

具有多列的表视图