sol*_*nqu 5 ios uirefreshcontrol swift
我有我refreshcontroller的scrollview...
self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Frissítéshez húzzad! :)")
self.refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
self.scrollView.addSubview(refreshControl)
func refresh(sender:AnyObject)
{
//my refresh code here..
self.refreshControl.endRefreshing()
}
Run Code Online (Sandbox Code Playgroud)
我正在添加subview一个scrollView.当页面内容是overflowing屏幕时,它正在工作.但问题是,当我没有收到太多数据而事实并非如此overflowing,该pull and refresh功能无效.:(
我没用tableview.
任何人都可以帮我解决这个问题吗?
Swi*_*ect 10
alwaysBounceVertical并不完全正确,并refreshControl已被介绍:
bounces如果contentSize小于,则始终需要framealwaysBounceVertical小内容也是必需的UIScrollView的存在的UIRefreshControl使用refreshControlUIRefreshControl现在支持UIScrollView,使用refreshControl就像UITableView以前的操作系统一样.
这意味着拖拽和拉下体验,完美无瑕,无漂移.
按照以下动画中的白色箭头点击+拖动:它们保持同步
您可以UIRefreshControl手动添加到a UIScrollView,但该视图不知道这样的元素,并且刷新的拉力趋于漂移.
注意在下面的动画上刷新是多么困难:白色箭头的滚动漂移,并且需要更大的距离来触发控件
refreshControl使用此滚动视图绕过操作系统差异extension:
var _refreshControl : UIRefreshControl? {
get {
if #available(iOS 10.0, *) {
return refreshControl
} else {
return subviews.first(where: { (view: UIView) -> Bool in
view is UIRefreshControl
}) as? UIRefreshControl
}
}
set {
if #available(iOS 10.0, *) {
refreshControl = newValue
} else {
// Unique instance of UIRefreshControl added to subviews
if let oldValue = _refreshControl {
oldValue.removeFromSuperview()
}
if let newValue = newValue {
insertSubview(newValue, at: 0)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
►在GitHub上找到此解决方案.
self.scrollView.scrollEnabled = true
self.scrollView.alwaysBounceVertical = true
Run Code Online (Sandbox Code Playgroud)
var alwaysBounceVertical:Bool //默认NO.如果是,则弹跳为是,即使内容小于边界,也允许垂直拖动
是的,我们可以对UIScrollView,UITableview,UicollectionVIew使用刷新控件。
这是PULL TO REFRESH的代码,
var refreshControl: UIRefreshControl!
override func viewDidLoad() {
super.viewDidLoad()
scrollView.alwaysBounceVertical = true
scrollView.bounces = true
refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(didPullToRefresh), for: .valueChanged)
self.scrollView.addSubview(refreshControl)
}
@objc func didPullToRefresh() {
print("Refersh")
// For End refrshing
refreshControl?.endRefreshing()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10072 次 |
| 最近记录: |