【发布时间】:2023-04-01 18:41:02
【问题描述】:
嗨,在我的应用程序中,我有一个可拉伸的标题,我正在添加我的刷新控件,如下所示 tableView.addSubview(refreshControll)
但是当使用它时,它在我视图的中间或底部,并且没有固定在顶部,我该如何解决这个问题?
【问题讨论】:
标签: ios swift refresh pull-to-refresh
嗨,在我的应用程序中,我有一个可拉伸的标题,我正在添加我的刷新控件,如下所示 tableView.addSubview(refreshControll)
但是当使用它时,它在我视图的中间或底部,并且没有固定在顶部,我该如何解决这个问题?
【问题讨论】:
标签: ios swift refresh pull-to-refresh
refreshControl.addTarget(self, action: #selector(refresh( sender:)), for: .valueChanged)
tableView.insertSubview(refreshControl, at: 0)
func refresh(sender: UIRefreshControl) {
sender.beginRefreshing()
// refresh tableview datasource
refresh()
}
【讨论】:
从 iOS 10 或 iOS 11 开始,UITableView 和 UICollectionView 有了自己的刷新控制选项。
var refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(reloadData), for: UIControl.Event.valueChanged)
tableView.refreshControl = refreshControl
您还可以查看有关 UITableViewController 的 Apple 文档。
【讨论】:
refreshControl 出现在大标题下方,我用这段代码解决了我的问题。谢谢。
refreshControl.endRefreshing() 来停止刷新。
从 iOS 10 开始,您有两个选项可以向 UIScrollView 添加刷新控件: 您可以将其添加到 tableView 中,就像另一个刷新控件一样:
tableView.addSubview(refreshControl)
这将在 UITableView 顶部显示 refreshControl,更准确地说,就像它被添加到 tableHeaderView 中一样。 另一种选择是使用 UIScrollView 类中已经包含的 refreshControl:
tableView.refreshControl = UIRefreshControl()
使用此选项,UIViewController 将控制放置 refreshControl 的位置,因为 iOS 10 会将其移动到导航栏上方的视图顶部。检查 iPhone 上的邮件应用程序以查看示例。
【讨论】: