【问题标题】:swift 4 refresh Control on topswift 4刷新控件在顶部
【发布时间】:2023-04-01 18:41:02
【问题描述】:

嗨,在我的应用程序中,我有一个可拉伸的标题,我正在添加我的刷新控件,如下所示 tableView.addSubview(refreshControll)

但是当使用它时,它在我视图的中间或底部,并且没有固定在顶部,我该如何解决这个问题?

【问题讨论】:

    标签: ios swift refresh pull-to-refresh


    【解决方案1】:
    refreshControl.addTarget(self, action: #selector(refresh( sender:)), for: .valueChanged)
    tableView.insertSubview(refreshControl, at: 0)
    
    func refresh(sender: UIRefreshControl) {
        sender.beginRefreshing()
        // refresh tableview datasource
        refresh()
    }
    

    【讨论】:

      【解决方案2】:

      从 iOS 10 或 iOS 11 开始,UITableViewUICollectionView 有了自己的刷新控制选项。

      var refreshControl = UIRefreshControl()
      refreshControl.addTarget(self, action: #selector(reloadData), for: UIControl.Event.valueChanged)
      tableView.refreshControl = refreshControl
      

      您还可以查看有关 UITableViewController 的 Apple 文档。

      【讨论】:

      • 我的refreshControl 出现在大标题下方,我用这段代码解决了我的问题。谢谢。
      • 在某个时间点,您必须致电refreshControl.endRefreshing() 来停止刷新。
      • 请看这个问题 --> stackoverflow.com/q/67056902/15466427
      【解决方案3】:

      从 iOS 10 开始,您有两个选项可以向 UIScrollView 添加刷新控件: 您可以将其添加到 tableView 中,就像另一个刷新控件一样:

      tableView.addSubview(refreshControl)
      

      这将在 UITableView 顶部显示 refreshControl,更准确地说,就像它被添加到 tableHeaderView 中一样。 另一种选择是使用 UIScrollView 类中已经包含的 refreshControl:

      tableView.refreshControl = UIRefreshControl()
      

      使用此选项,UIViewController 将控制放置 refreshControl 的位置,因为 iOS 10 会将其移动到导航栏上方的视图顶部。检查 iPhone 上的邮件应用程序以查看示例。

      【讨论】:

        猜你喜欢
        • 2016-11-06
        • 2010-12-21
        • 2021-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 2019-02-01
        相关资源
        最近更新 更多