Skip to content
This repository was archived by the owner on Jul 1, 2020. It is now read-only.

Commit 95a1a6f

Browse files
user unowned self in example
1 parent e40e4f6 commit 95a1a6f

10 files changed

Lines changed: 52 additions & 41 deletions

Demo/Demo/ConfigHeaderFooterController.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ class ConfigDefaultHeaderFooterController: UITableViewController {
2525
header.tintColor = UIColor.orange
2626
header.imageRenderingWithTintColor = true
2727
header.durationWhenHide = 0.4
28-
self.tableView.configRefreshHeader(with: header) { [weak self] in
28+
self.tableView.configRefreshHeader(with: header) { [unowned self] in
2929
delay(1.5, closure: {
30-
self?.models = (self?.models.map({_ in random100()}))!
31-
self?.tableView.reloadData()
32-
self?.tableView.switchRefreshHeader(to: .normal(.success, 0.3))
30+
self.models = self.models.map{_ in random100()}
31+
self.tableView.reloadData()
32+
self.tableView.switchRefreshHeader(to: .normal(.success, 0.3))
3333
})
3434
};
3535
let footer = DefaultRefreshFooter.footer()
@@ -39,7 +39,7 @@ class ConfigDefaultHeaderFooterController: UITableViewController {
3939
footer.setText("Tap to load more", mode: .tapToRefresh)
4040
footer.textLabel.textColor = UIColor.orange
4141
footer.refreshMode = .tap
42-
self.tableView.configRefreshFooter(with: footer) {
42+
self.tableView.configRefreshFooter(with: footer) { [unowned self] in
4343
delay(1.5, closure: {
4444
self.models.append(random100())
4545
self.tableView.reloadData()

Demo/Demo/DefaultCollectionViewController.swift

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,16 @@ class DefaultCollectionViewController:UIViewController,UICollectionViewDataSourc
1616
override func viewDidLoad() {
1717
self.view.backgroundColor = UIColor.white
1818
self.setUpCollectionView()
19-
self.collectionView.configRefreshHeader(with: DefaultRefreshHeader.header()) { [weak self] in
19+
self.collectionView.configRefreshHeader(with: DefaultRefreshHeader.header()) { [unowned self] in
2020
delay(1.0, closure: {
21-
self?.collectionView.switchRefreshHeader(to: .normal(.success, 0.5));
21+
self.collectionView.switchRefreshHeader(to: .normal(.success, 0.5));
2222
});
2323
}
24-
self.collectionView.configRefreshFooter(with: DefaultRefreshFooter.footer()) { [weak self] in
24+
self.collectionView.configRefreshFooter(with: DefaultRefreshFooter.footer()) { [unowned self] in
2525
delay(1.0, closure: {
26-
guard let sf = self else{
27-
return
28-
}
29-
sf.count = sf.count + 3
30-
sf.collectionView.reloadData()
31-
sf.collectionView.switchRefreshFooter(to: .normal)
26+
self.count = self.count + 3
27+
self.collectionView.reloadData()
28+
self.collectionView.switchRefreshFooter(to: .normal)
3229
});
3330
};
3431

@@ -54,6 +51,7 @@ class DefaultCollectionViewController:UIViewController,UICollectionViewDataSourc
5451
return cell
5552
}
5653
deinit{
54+
self.collectionView.invalidateRefreshControls()
5755
print("Deinit of DefaultCollectionViewController")
5856
}
5957
}

Demo/Demo/DefaultTableViewController.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,14 @@ class DefaultTableViewController:UITableViewController{
2626
override func viewDidLoad() {
2727
super.viewDidLoad()
2828
self.tableView.tableFooterView = UIView(frame: CGRect.zero)
29-
self.tableView.configRefreshHeader(with: DefaultRefreshHeader.header()) {
29+
self.tableView.configRefreshHeader(with: DefaultRefreshHeader.header()) { [unowned self] in
3030
delay(1.5, closure: {
31-
self.models = self.originalModes.map({_ in random100()})
32-
self.tableView.switchRefreshFooter(to: .normal)
31+
self.models = self.originalModes.map{_ in random100()}
3332
self.tableView.switchRefreshHeader(to: .normal(.success, 0.5))
3433
self.tableView.reloadData()
3534
})
3635
}
37-
self.tableView.configRefreshFooter(with: DefaultRefreshFooter.footer()) {
36+
self.tableView.configRefreshFooter(with: DefaultRefreshFooter.footer()) { [unowned self] in
3837
delay(1.5, closure: {
3938
self.models.append(random100())
4039
self.tableView.reloadData()
@@ -62,6 +61,7 @@ class DefaultTableViewController:UITableViewController{
6261
return cell!
6362
}
6463
deinit{
64+
self.tableView.invalidateRefreshControls()
6565
print("Deinit of DefaultTableViewController")
6666
}
6767
}

Demo/Demo/DianpingTableviewController.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ class DianpingTableviewController:BaseTableViewController{
1313
override func viewDidLoad() {
1414
super.viewDidLoad()
1515
//Setup
16-
self.tableView.configRefreshHeader(with: DianpingRefreshHeader()) { [weak self] in
16+
self.tableView.configRefreshHeader(with: DianpingRefreshHeader()) { [unowned self] in
1717
delay(1.5, closure: {
18-
self?.models = (self?.models.map({_ in random100()}))!
19-
self?.tableView.reloadData()
20-
self?.tableView.switchRefreshHeader(to: .normal(.none, 0.0))
18+
self.models = self.models.map{_ in random100()}
19+
self.tableView.reloadData()
20+
self.tableView.switchRefreshHeader(to: .normal(.none, 0.0))
2121
})
2222
};
2323
self.tableView.switchRefreshHeader(to: .refreshing)

Demo/Demo/ElasticHeaderTableViewController.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ class ElasticHeaderTableViewController:BaseTableViewController{
1414
override func viewDidLoad() {
1515
super.viewDidLoad()
1616
let elasticHeader = ElasticRefreshHeader()
17-
self.tableView.configRefreshHeader(with: elasticHeader) { [weak self] in
17+
self.tableView.configRefreshHeader(with: elasticHeader) { [unowned self] in
1818
delay(1.5, closure: {
19-
self?.models = (self?.models.map({_ in random100()}))!
20-
self?.tableView.reloadData()
21-
self?.tableView.switchRefreshHeader(to: .normal(.success, 0.5));
19+
self.models = self.models.map{_ in random100()}
20+
self.tableView.reloadData()
21+
self.tableView.switchRefreshHeader(to: .normal(.success, 0.5));
2222
})
2323
};
2424
}

Demo/Demo/MainViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class MainViewController: UITableViewController {
4747
models.append(section2)
4848
models.append(section3)
4949
let header = DefaultRefreshHeader.header()
50-
self.tableView.configRefreshHeader(with: header) {
50+
self.tableView.configRefreshHeader(with: header) { [unowned self] in
5151
delay(2, closure: {
5252
self.tableView.switchRefreshHeader(to: .normal(.success, 0.5))
5353
})

Demo/Demo/QQVideoTableViewController.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ class QQVideoTableviewController:BaseTableViewController{
1313
override func viewDidLoad() {
1414
super.viewDidLoad()
1515
let qqHeader = QQVideoRefreshHeader(frame: CGRect(x: 0,y: 0,width: self.view.bounds.width,height: 50))
16-
self.tableView.configRefreshHeader(with: qqHeader) { [weak self] in
16+
self.tableView.configRefreshHeader(with: qqHeader) { [unowned self] in
1717
delay(1.5, closure: {
18-
self?.models = (self?.models.map({_ in random100()}))!
19-
self?.tableView.reloadData()
20-
self?.tableView.switchRefreshHeader(to: .normal(.none, 0.0))
18+
self.models = self.models.map{_ in random100()}
19+
self.tableView.reloadData()
20+
self.tableView.switchRefreshHeader(to: .normal(.none, 0.0))
2121
})
2222
};
2323
self.tableView.switchRefreshHeader(to: .refreshing)

Demo/Demo/YahooWeatherTableViewController.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ class YahooWeatherTableViewController:BaseTableViewController{
1414
super.viewDidLoad()
1515
//Setup
1616
let yahooHeader = YahooWeatherRefreshHeader()
17-
tableView.configRefreshHeader(with: yahooHeader) { [weak self] in
17+
tableView.configRefreshHeader(with: yahooHeader) { [unowned self] in
1818
delay(2.5, closure: {
19-
self?.models = (self?.models.map({_ in random100()}))!
20-
self?.tableView.reloadData()
21-
self?.tableView.switchRefreshHeader(to: .normal(.none, 0.0))
19+
self.models = self.models.map{_ in random100()}
20+
self.tableView.reloadData()
21+
self.tableView.switchRefreshHeader(to: .normal(.none, 0.0))
2222
})
2323

2424
};

Demo/NeteaseFooterController.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ class NeteaseFooterController: BaseTableViewController {
1212

1313
override func viewDidLoad() {
1414
super.viewDidLoad()
15-
self.tableView.configRefreshFooter(with: NeteaseNewsFooter()) { [weak self] in
15+
self.tableView.configRefreshFooter(with: NeteaseNewsFooter()) { [unowned self] in
1616
delay(2.0, closure: {
17-
self?.models.append(random100())
18-
self?.tableView.reloadData()
19-
if let count = self?.models.count, count == 12{
20-
self?.tableView.switchRefreshFooter(to: .noMoreData)
17+
self.models.append(random100())
18+
self.tableView.reloadData()
19+
if self.models.count == 12{
20+
self.tableView.switchRefreshFooter(to: .noMoreData)
2121
}else{
22-
self?.tableView.switchRefreshFooter(to: .normal)
22+
self.tableView.switchRefreshFooter(to: .normal)
2323
}
2424
});
2525
};

Source/Classes/PullToRefresh.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,19 @@ public enum HeaderRefresherState {
2323
case removed //移除
2424
}
2525

26+
public extension UIScrollView{
27+
public func invalidateRefreshControls(){
28+
let tags = [PullToRefreshKitConst.headerTag,
29+
PullToRefreshKitConst.footerTag,
30+
PullToRefreshKitConst.leftTag,
31+
PullToRefreshKitConst.rightTag]
32+
tags.forEach { (tag) in
33+
let oldContain = self.viewWithTag(tag)
34+
oldContain?.removeFromSuperview()
35+
}
36+
}
37+
}
38+
2639
public extension UIScrollView{
2740

2841
public func configRefreshHeader<T:UIView>(with refrehser:T,

0 commit comments

Comments
 (0)