Chr*_*cue 3 ios uirefreshcontrol swift
我试图在视图加载时显示一个刷新控件,以显示我从Parse获取数据.应用程序运行时,刷新控件可以正常工作,但我无法从应用程序的任何位置以编程方式启动它.这是似乎没有运行的代码:
override func viewDidAppear(animated: Bool) {
self.refresher.beginRefreshing()
}
Run Code Online (Sandbox Code Playgroud)
这不仅不会运行,而且应用程序中的代码会更改刷新控件的属性.当我在应用程序中有这个代码,并显示用户交互的复习时,刷新控件没有它通常所做的属性标题,也没有运行它应该的代码.
我需要在setContentOffset和self.refreshControl?.sendActions(for: .valueChanged)调用之间添加一个延迟.没有延迟,refreshControl的attributesTitle将无法呈现.
这适用于iOS 10(Swift 3):
self.tableView.setContentOffset(CGPoint(x:0, y:self.tableView.contentOffset.y - (self.refreshControl!.frame.size.height)), animated: true)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.2, execute: {
self.refreshControl?.sendActions(for: .valueChanged)
})
Run Code Online (Sandbox Code Playgroud)
这是在10.3上运行的扩展:
extension UIRefreshControl {
func refreshManually() {
if let scrollView = superview as? UIScrollView {
scrollView.setContentOffset(CGPoint(x: 0, y: scrollView.contentOffset.y - frame.height), animated: false)
}
beginRefreshing()
sendActions(for: .valueChanged)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5555 次 |
| 最近记录: |