已经实现了TableView聊天消息对话框了
现在需要实现
下拉的时候:
可以去获取之前的聊天消息
并刷新显示
UIKit User Interface Catalog: Scroll Views
UIScrollViewDelegate Protocol Reference
swift tableview scroll
ios – How do i automatically scroll in a table view? Using swift – Stack Overflow
ios – How to make tableView scrollable in Swift – Stack Overflow
Swift – UITableView scroll event – Stack Overflow
Update UITableView when user scrolls to end | Anas Imtiaz
swift tableview scroll update
swift tableview scroll refresh
swift uitableview scroll refresh
ios – How to use pull to refresh in swift – Stack Overflow
Implement Pull-to-refresh and Empty Table | iOS Programming
swift uitableview pull refresh
swift tableview pull refresh
看了:
Implement Pull-to-refresh and Empty Table | iOS Programming
后,好像是:
之前看到的:
UIScrollViewDelegate
只是针对于:
已有的tableView的row去滚动的时候才用得到的
而对于:
下拉,获取新数据,填充新的row,然后显示
即,下拉更新
的动作,则不属于scroll,属于pull
所以应该用这个:
UIRefreshControl
swift uitableview UIRefreshControl
[iOS] 使用UIRefreshControl 实现 UITableView下拉刷新(Swift版本) – 汪海的实验室 – 博客频道 – CSDN.NET
UIRefreshControl Class Reference
然后终于实现了下拉更新:
var messageTableView:UITableView = UITableView() var refreshControl:UIRefreshControl! override func viewDidLoad() { super.viewDidLoad() //… self.refreshControl = UIRefreshControl() self.refreshControl.attributedTitle = NSAttributedString(string: "请下拉以刷新历史消息") self.refreshControl.addTarget(self, action: "pullToRefreshHistoryMessages", forControlEvents: UIControlEvents.ValueChanged) self.messageTableView.addSubview(refreshControl) } func pullToRefreshHistoryMessages(){ print("pullToRefreshHistoryMessages") //get history message data … self.messageTableView.reloadData() self.refreshControl.endRefreshing() } |
效果:
当下拉的时候,那个滚动的菊花状的圆圈,满的时候,就会调用到:
target的函数:pullToRefreshHistoryMessages
-》当下拉距离很短,菊花状没有满:
则不会调用对应的target函数的。
转载请注明:在路上 » [已解决]Swift中实现TableView下拉滚动刷新内容