原生刷新和声明周期的注意点

2016-11-08  本文已影响16人  BigBossZhu

viewDidLoad方法和viewWillAppear

** homeConroller中tableView如果加在了viewDidLoad方法中,tableView底部无法去完全滑到.为什么怎么解决?? **

1. 首先学习了network调试方法执行顺序的功能,下方三个按钮取消系统的方法,和只显示多线程的作用,2. 发现了一个方法调用的顺序,viewDidLoad方法是在控制器创建的时候调用的,而viewWillApear方法是在makeKeyAndVisiable就是window显示以后才能显示View正确的frame,在viewDidLoad方法中设置的frame可能在后面会改变,所以无法滚到了.将frame设置在viewWillAppear中就可以了

原生的tableview刷新的实现

注意tip,让数据默默刷新,当将要显示到count-2时,就加载下拉刷新

 //refrechControl 
 lazy var refrechControl: UIRefreshControl = {
 let refrechControl = UIRefreshControl()
 refrechControl.addTarget(self, action: #selector(loadData), for: UIControlEvents.valueChanged)
 return refrechControl
 }()

 //bottomRefrech
 lazy var footRefrechActivity: UIActivityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)
添加子视图
 tableView.addSubview(refrechControl) 
 //等于尾视图
 tableView.tableFooterView = footRefrechActivity

 //调用一个TableView的代理新方法,某个cell将要被显示时调用 
 func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
 if indexPath.row == 19 {
 //开始做下拉刷新的操作
 footRefrechActivity.startAnimating()
 loadData()
      }
 }

约束的bug

** lable的正文显示不全,后面显示...,解决:cell中的约束 **

上一篇 下一篇

猜你喜欢

热点阅读