【问题标题】:Ios pull-to-refresh strategy for UIPageViewControllerUIPageViewController 的 ios 拉动刷新策略
【发布时间】:2017-01-11 12:52:14
【问题描述】:

我有一个 UIPageViewController 可以包含 0 到 3 个 UITableViewController 项目。在打开屏幕时,我的应用程序向后端执行请求,检索可能包含多达 3 个单独的数据列表的响应(请注意,无法单独检索这些列表)。每个列表都显示在UITableViewController 项目之一中。仅当有要为该视图显示的数据时,才会创建其中的每一个。

问题是,鉴于以下情况,我将如何实施拉动刷新:

  • 可能没有UITableView 提供UIRefreshControl
  • 拉动会刷新所有寻呼机的子项,不仅是当前显示的UITableView

【问题讨论】:

    标签: ios swift pull-to-refresh


    【解决方案1】:

    首先你需要一个滚动视图来使用 UIRefreshControl,否则你怎么能把它拉下来。所以让我们稍后再说。您的第二部分有点难以回答,因为您定义了如何更新它,如果没有更多信息或代码快照,将不容易为您提供帮助。但是我可以说你应该创建更新其他表格视图的函数,这样当刷新控件被“激活”时,这些函数就会被调用。

    你可以这样调用函数:

    yourRefreshControl.addTarget(target: Any?, action: #Selector, for: UIControlEvents)
    

    如果您不确定 addTarget 函数是如何工作的,here 是 StackOverflow 上的一个问题,可能会有所帮助

    现在进入第二部分。要将 UIRefreshControl 添加到 UIPageViewController 您需要首先设置一个 scrollView 作为控件查看器的子视图,您可以在 storyBoard 中执行此操作,在创建它并设置所有约束之后为您的 UIPageViewController 类创建一个出口并创建一个名为的第二个变量refreshControl 或者您想调用它。所以你会有这两个变量:

    @IBOutlet weak var scrollView: UIScrollView!
    var refreshControll: UIRefreshControl!
    

    然后在 onViewDidLoad 函数中,您只需将 refreshControl 添加到 ScrollView 就会发生奇迹:]。为了满足 refreshControl 设置它类似于这样:

    self.refreshControll = UIRefreshControl()
    self.scrollView.addSubview(refreshControll)
    refreshControll.addTarget(self, action: #selector(WeatherController.updateWeather), for: UIControlEvents.allEvents)
    

    我们在这里所做的就是创建一个新的refreshControl,将它作为一个子视图添加到scrollView,并为refreshControl 添加目标。如前所述,refreshControl 的目标应该是处理 tableViews 更新的函数

    你好 - 豪尔赫

    【讨论】:

      猜你喜欢
      • 2011-07-05
      • 1970-01-01
      • 2020-05-20
      • 2014-07-09
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多