Nic*_*ico 2 uirefreshcontrol swift
我试图在表视图上添加刷新控件,但无法按我的要求进行。
我有一个视图,其中包含一个表视图。我的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)
}
Run Code Online (Sandbox Code Playgroud)
一切正常,除了当我下拉行以触发刷新控件时,刷新控件出现在第一行之后,并终止于第一行的顶部(正常情况下,我将这些行下拉...)。
我想要得到的就像在许多应用程序中一样,当您下拉行时,刷新控件的行为就像是#-1行,并且在我们下拉第一行时就从顶部取消隐藏。
内置的刷新控件有可能吗?
谢谢
好吧,我找到了答案的一部分,与此
它不能解决我的问题,但至少可以解决问题……现在,“ Pull to refresh”不会在我拉动时出现在第一行中。因此在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)
Run Code Online (Sandbox Code Playgroud)
由:
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
Run Code Online (Sandbox Code Playgroud)
或者只是将其添加到第一部分,而不是用第二部分代替。
self.tableView.insertSubview(refreshControl, atIndex: 0)
Run Code Online (Sandbox Code Playgroud)
我真的不知道是否有一种方法比另一种更好,但是两者似乎都有效。
| 归档时间: |
|
| 查看次数: |
2170 次 |
| 最近记录: |