如何在 UIScrollView 的末尾添加一个按钮以加载更多?
Posted
技术标签:
【中文标题】如何在 UIScrollView 的末尾添加一个按钮以加载更多?【英文标题】:How to add a button to the end of UIScrollView to load more? 【发布时间】:2016-11-20 02:42:40 【问题描述】:我有一个带分页的卷轴。我想一次只加载 75 个页面,当用户到达最后一页时,最后一次滑动时会显示一个按钮。必须单击该按钮才能加载更多内容。
与您在附图中看到的 ios Zillow 应用程序相同。
我应该如何添加这个按钮?它是卷轴的一部分还是只是卷轴外面的一个按钮?
【问题讨论】:
【参考方案1】:所以让我们首先考虑如何初始化我们的表格视图。我们使用
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
返回表格中我们想要的单元格数量,假设我们使用类似
return searchResultsArray.count
但如果我们想要一个“加载更多结果”按钮,那么让我们再添加 1 个单元格
return searchResultsArray.count + 1
好的,现在我们如何在这个新单元格中添加按钮?我们想使用
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
我们会说
if indexPath.row == searchResultsArray.count
(请记住,数组的计数值比数组中最后一个元素的索引大 1,所以这个 if 语句基本上是在说,“如果这个单元格是加载更多单元格”)
然后我们将在这个单元格中创建我们的按钮,我们可以将一个函数链接到按钮(使用选择器),它将结果添加到 searchResultsArray,然后重新加载表格(使用 tableView.reloadData())
如果它是一个(垂直滚动)表格视图,这就是你将如何处理这个问题,但是如果你想在 zillow 中重新创建水平滚动界面,那么你需要使用一个集合视图,如果你这样做会有点复杂' 是 iOS 开发的新手,但仍然使用我上面描述的基本概念。这里有一个很棒的视频可以帮助你:https://www.youtube.com/watch?v=Ko9oNhlTwH0
【讨论】:
【参考方案2】:我会建议您使用UICollectionView
而不是UIScrollView
,因为UIScrollView
您将为您的UIImageView
创建多个对象并将其添加到您的UIScrollView
中,与@ 相比,这将占用更多内存987654326@,与UICollectionView
一样,您可以重复使用相同的单元格,因此与UIScrollView
相比,UICollectionView
消耗的内存将非常少。
最后重新添加按钮,在你的 UICollectionView 中创建两个自定义单元格,一个是显示 UIImageView,一个是显示加载更多按钮,一次获取 75 个结果并在数据源中 numberOfItemsInSection
return
75+1 (即您的数组计数 + 1 [+1 以在您想要显示时显示加载更多按钮])
现在在cellForItemAtIndexPath
中比较indexpath.row
计数是否大于您的数组计数,然后为“加载更多”按钮加载单元格。
【讨论】:
以上是关于如何在 UIScrollView 的末尾添加一个按钮以加载更多?的主要内容,如果未能解决你的问题,请参考以下文章
在 UIScrollview 的末尾放置一个视图 - Swift