与单元格一起移动的 TableView 上的 UIRefreshControl
Posted
技术标签:
【中文标题】与单元格一起移动的 TableView 上的 UIRefreshControl【英文标题】:UIRefreshControl on a TableView moving with the cells 【发布时间】:2015-02-18 04:20:27 【问题描述】:我尝试在我的表格视图上添加一个刷新控件,但我无法按照我的意愿进行操作。
我有一个包含表格视图等内容的视图。 我的 ViewController 的 viewDidLoad 函数如下:
override func viewDidLoad()
super.viewDidLoad()
// set the refresh control
self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
self.refreshControl.addTarget(self, action: "getData", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refreshControl)
除了当我拉下行以触发刷新控件时,一切都正常工作,刷新控件出现在第一行的后面并最终出现在第一行的顶部(正常,我将这些行拉下......) .
我想在许多应用程序中得到的是,当您拉下行时,刷新控件的行为就像它是行 #-1 并且在我们拉下第一行时立即从顶部取消隐藏.
内置刷新控件可以实现吗?
谢谢
【问题讨论】:
【参考方案1】:嗯,我找到了this的部分答案
它不能解决我的问题,但至少它更好......现在“拉刷新”不会出现在我拉的第一行...... 所以在 Swift 中你可以这样做:
替换:
self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
self.refreshControl.addTarget(self, action: "getData", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refreshControl)
作者:
let tableViewController = UITableViewController()
tableViewController.tableView = self.tableView
self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
self.refreshControl.addTarget(self, action: "getData", forControlEvents: UIControlEvents.ValueChanged)
tableViewController.refreshControl = self.refreshControl
或者只是将它添加到第一部分而不是用第二部分替换它。
self.tableView.insertSubview(refreshControl, atIndex: 0)
我真的不知道一种方法是否比另一种更好,但两者似乎都有效。
【讨论】:
以上是关于与单元格一起移动的 TableView 上的 UIRefreshControl的主要内容,如果未能解决你的问题,请参考以下文章