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

Commit e40e4f6

Browse files
Merge pull request #25 from LeoMobileDeveloper/v0.8.2
V0.8.2
2 parents ce68add + 4210eca commit e40e4f6

29 files changed

Lines changed: 360 additions & 278 deletions

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## v0.8.2
2+
3+
### Add
4+
5+
- Add `heightForHeader` and `heightForFooter` in Protocols
6+
- Do not need to set frame height when set up header&footer&left&right
7+
8+
### Updated
9+
10+
- Rename `didBeginEndRefershingAnimation` to `didBeginHideRefershingAnimation`
11+
- Rename `didCompleteEndRefershingAnimation` to `didCompleteHideRefershingAnimation`
12+
- Rename `durationWhenEndRefreshing` to `durationOfHideAnimation`
13+
14+
## Fixd
15+
16+
- Fix footer frame issue

Demo/Demo.xcodeproj/project.pbxproj

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
B3B543E31F062A9800408912 /* BaseTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B543071F062A9700408912 /* BaseTableViewController.swift */; };
2323
B3B543E41F062A9800408912 /* ConfigBannerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B543081F062A9700408912 /* ConfigBannerController.swift */; };
2424
B3B543E51F062A9800408912 /* ConfigHeaderFooterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B543091F062A9700408912 /* ConfigHeaderFooterController.swift */; };
25-
B3B543E61F062A9800408912 /* CurveMaskTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B5430A1F062A9700408912 /* CurveMaskTableViewController.swift */; };
26-
B3B543E71F062A9800408912 /* CurveRefreshHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B5430B1F062A9700408912 /* CurveRefreshHeader.swift */; };
2725
B3B543E81F062A9800408912 /* DefaultBannerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B5430C1F062A9700408912 /* DefaultBannerController.swift */; };
2826
B3B543E91F062A9800408912 /* DefaultCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B5430D1F062A9700408912 /* DefaultCollectionViewController.swift */; };
2927
B3B543EA1F062A9800408912 /* DefaultScrollViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B5430E1F062A9700408912 /* DefaultScrollViewController.swift */; };
@@ -53,6 +51,8 @@
5351
B3B544AD1F062A9800408912 /* YoukuTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B543D11F062A9700408912 /* YoukuTableViewController.swift */; };
5452
B3B544AE1F062A9800408912 /* LaunchScreen.strings in Resources */ = {isa = PBXBuildFile; fileRef = B3B543D21F062A9700408912 /* LaunchScreen.strings */; };
5553
B3B544AF1F062A9800408912 /* Main.strings in Resources */ = {isa = PBXBuildFile; fileRef = B3B543D41F062A9700408912 /* Main.strings */; };
54+
B3E751CD1FB999F5009D3A81 /* NeteaseNewsFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3E751CC1FB999F5009D3A81 /* NeteaseNewsFooter.swift */; };
55+
B3E751CF1FB99A22009D3A81 /* NeteaseFooterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3E751CE1FB99A22009D3A81 /* NeteaseFooterController.swift */; };
5656
/* End PBXBuildFile section */
5757

5858
/* Begin PBXContainerItemProxy section */
@@ -102,8 +102,6 @@
102102
B3B543071F062A9700408912 /* BaseTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BaseTableViewController.swift; path = Demo/BaseTableViewController.swift; sourceTree = "<group>"; };
103103
B3B543081F062A9700408912 /* ConfigBannerController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ConfigBannerController.swift; path = Demo/ConfigBannerController.swift; sourceTree = "<group>"; };
104104
B3B543091F062A9700408912 /* ConfigHeaderFooterController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ConfigHeaderFooterController.swift; path = Demo/ConfigHeaderFooterController.swift; sourceTree = "<group>"; };
105-
B3B5430A1F062A9700408912 /* CurveMaskTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CurveMaskTableViewController.swift; path = Demo/CurveMaskTableViewController.swift; sourceTree = "<group>"; };
106-
B3B5430B1F062A9700408912 /* CurveRefreshHeader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CurveRefreshHeader.swift; path = Demo/CurveRefreshHeader.swift; sourceTree = "<group>"; };
107105
B3B5430C1F062A9700408912 /* DefaultBannerController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DefaultBannerController.swift; path = Demo/DefaultBannerController.swift; sourceTree = "<group>"; };
108106
B3B5430D1F062A9700408912 /* DefaultCollectionViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DefaultCollectionViewController.swift; path = Demo/DefaultCollectionViewController.swift; sourceTree = "<group>"; };
109107
B3B5430E1F062A9700408912 /* DefaultScrollViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DefaultScrollViewController.swift; path = Demo/DefaultScrollViewController.swift; sourceTree = "<group>"; };
@@ -134,6 +132,8 @@
134132
B3B543D11F062A9700408912 /* YoukuTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = YoukuTableViewController.swift; path = Demo/YoukuTableViewController.swift; sourceTree = "<group>"; };
135133
B3B543D31F062A9700408912 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/LaunchScreen.strings"; sourceTree = "<group>"; };
136134
B3B543D51F062A9700408912 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Main.strings"; sourceTree = "<group>"; };
135+
B3E751CC1FB999F5009D3A81 /* NeteaseNewsFooter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NeteaseNewsFooter.swift; sourceTree = "<group>"; };
136+
B3E751CE1FB99A22009D3A81 /* NeteaseFooterController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NeteaseFooterController.swift; sourceTree = "<group>"; };
137137
/* End PBXFileReference section */
138138

139139
/* Begin PBXFrameworksBuildPhase section */
@@ -194,12 +194,12 @@
194194
B38F55011F976DFF00993075 /* Custom */ = {
195195
isa = PBXGroup;
196196
children = (
197+
B3E751CB1FB999CE009D3A81 /* CustomFooter */,
197198
B38F55031F976E3200993075 /* Taobao */,
198199
B38F55081F976E6500993075 /* Elastic */,
199200
B38F55071F976E5D00993075 /* Yahoo */,
200201
B38F55061F976E4C00993075 /* Dianping */,
201202
B38F55021F976E2A00993075 /* QQVideo */,
202-
B38F55051F976E4300993075 /* Curve */,
203203
B38F55041F976E3A00993075 /* Youku */,
204204
);
205205
name = Custom;
@@ -232,15 +232,6 @@
232232
name = Youku;
233233
sourceTree = "<group>";
234234
};
235-
B38F55051F976E4300993075 /* Curve */ = {
236-
isa = PBXGroup;
237-
children = (
238-
B3B5430A1F062A9700408912 /* CurveMaskTableViewController.swift */,
239-
B3B5430B1F062A9700408912 /* CurveRefreshHeader.swift */,
240-
);
241-
name = Curve;
242-
sourceTree = "<group>";
243-
};
244235
B38F55061F976E4C00993075 /* Dianping */ = {
245236
isa = PBXGroup;
246237
children = (
@@ -323,6 +314,15 @@
323314
path = ..;
324315
sourceTree = "<group>";
325316
};
317+
B3E751CB1FB999CE009D3A81 /* CustomFooter */ = {
318+
isa = PBXGroup;
319+
children = (
320+
B3E751CC1FB999F5009D3A81 /* NeteaseNewsFooter.swift */,
321+
B3E751CE1FB99A22009D3A81 /* NeteaseFooterController.swift */,
322+
);
323+
name = CustomFooter;
324+
sourceTree = "<group>";
325+
};
326326
/* End PBXGroup section */
327327

328328
/* Begin PBXNativeTarget section */
@@ -435,6 +435,7 @@
435435
B3B543E31F062A9800408912 /* BaseTableViewController.swift in Sources */,
436436
B3B543E41F062A9800408912 /* ConfigBannerController.swift in Sources */,
437437
B3B543EB1F062A9800408912 /* DefaultTableViewController.swift in Sources */,
438+
B3E751CD1FB999F5009D3A81 /* NeteaseNewsFooter.swift in Sources */,
438439
B3B544AD1F062A9800408912 /* YoukuTableViewController.swift in Sources */,
439440
B3B543EC1F062A9800408912 /* DefaultWebViewController.swift in Sources */,
440441
B3B5442F1F062A9800408912 /* QQVideoRefreshHeader.swift in Sources */,
@@ -444,15 +445,14 @@
444445
B3B544311F062A9800408912 /* RowModel.swift in Sources */,
445446
B3B544A31F062A9800408912 /* TaoBaoRefreshHeader.swift in Sources */,
446447
B3B544A51F062A9800408912 /* Util.swift in Sources */,
447-
B3B543E71F062A9800408912 /* CurveRefreshHeader.swift in Sources */,
448448
B3B544A41F062A9800408912 /* TaobaoTableViewController.swift in Sources */,
449+
B3E751CF1FB99A22009D3A81 /* NeteaseFooterController.swift in Sources */,
449450
B3B543EE1F062A9800408912 /* DianpingTableviewController.swift in Sources */,
450451
B3B544A71F062A9800408912 /* YahooWeatherRefreshHeader.swift in Sources */,
451452
B3B5442E1F062A9800408912 /* MainViewController.swift in Sources */,
452453
B3B544301F062A9800408912 /* QQVideoTableViewController.swift in Sources */,
453454
B3B543ED1F062A9800408912 /* DianpingRefreshHeader.swift in Sources */,
454455
B3B543D91F062A9700408912 /* AppDelegate.swift in Sources */,
455-
B3B543E61F062A9800408912 /* CurveMaskTableViewController.swift in Sources */,
456456
B3B543EF1F062A9800408912 /* ElasticHeaderTableViewController.swift in Sources */,
457457
B3B543E51F062A9800408912 /* ConfigHeaderFooterController.swift in Sources */,
458458
B3B544A81F062A9800408912 /* YahooWeatherTableViewController.swift in Sources */,

Demo/Demo/BaseTableViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import UIKit
1010

1111
class BaseTableViewController: UITableViewController {
12-
var models = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
12+
var models = [1,2,3,4,5,6,7,8,9,10]
1313

1414
override func viewDidLoad() {
1515
super.viewDidLoad()

Demo/Demo/ConfigHeaderFooterController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class ConfigDefaultHeaderFooterController: UITableViewController {
1414
override func viewDidLoad() {
1515
super.viewDidLoad()
1616
self.tableView.tableFooterView = UIView(frame: CGRect.zero)
17-
17+
1818
//Header
1919
let header = DefaultRefreshHeader.header()
2020
header.setText("Pull to refresh", mode: .pullToRefresh)
@@ -43,7 +43,7 @@ class ConfigDefaultHeaderFooterController: UITableViewController {
4343
delay(1.5, closure: {
4444
self.models.append(random100())
4545
self.tableView.reloadData()
46-
if self.models.count > 12{
46+
if self.models.count > 18{
4747
self.tableView.switchRefreshFooter(to: .removed)
4848
}else{
4949
self.tableView.switchRefreshFooter(to: .normal)

Demo/Demo/CurveMaskTableViewController.swift

Lines changed: 0 additions & 25 deletions
This file was deleted.

Demo/Demo/CurveRefreshHeader.swift

Lines changed: 0 additions & 95 deletions
This file was deleted.

Demo/Demo/DefaultCollectionViewController.swift

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,23 @@ import PullToRefreshKit
1212

1313
class DefaultCollectionViewController:UIViewController,UICollectionViewDataSource{
1414
var collectionView:UICollectionView!
15+
var count = 9
1516
override func viewDidLoad() {
1617
self.view.backgroundColor = UIColor.white
1718
self.setUpCollectionView()
18-
self.collectionView.configRefreshHeader(with: DefaultRefreshHeader.header()) {
19+
self.collectionView.configRefreshHeader(with: DefaultRefreshHeader.header()) { [weak self] in
1920
delay(1.0, closure: {
20-
self.collectionView.switchRefreshHeader(to: .normal(.success, 0.5));
21+
self?.collectionView.switchRefreshHeader(to: .normal(.success, 0.5));
2122
});
2223
}
23-
self.collectionView.configRefreshFooter(with: DefaultRefreshFooter.footer()) {
24+
self.collectionView.configRefreshFooter(with: DefaultRefreshFooter.footer()) { [weak self] in
2425
delay(1.0, closure: {
25-
self.collectionView.switchRefreshFooter(to: .normal)
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)
2632
});
2733
};
2834

@@ -31,15 +37,16 @@ class DefaultCollectionViewController:UIViewController,UICollectionViewDataSourc
3137
let flowLayout = UICollectionViewFlowLayout()
3238
flowLayout.scrollDirection = UICollectionViewScrollDirection.vertical
3339
flowLayout.itemSize = CGSize(width: 100, height: 100)
34-
self.collectionView = UICollectionView(frame: self.view.bounds, collectionViewLayout: flowLayout)
40+
let frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: 300)
41+
self.collectionView = UICollectionView(frame:frame, collectionViewLayout: flowLayout)
3542
self.collectionView?.backgroundColor = UIColor.white
3643
self.collectionView?.dataSource = self
3744
self.view.addSubview(self.collectionView!)
3845

3946
self.collectionView?.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "cell")
4047
}
4148
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
42-
return 21
49+
return self.count
4350
}
4451
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
4552
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)

Demo/Demo/DefaultTableViewController.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ fileprivate func < <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
2121
}
2222

2323
class DefaultTableViewController:UITableViewController{
24-
let originalModes = [1,2,3,4,5,6,7,8,9,10]
25-
var models = [1,2,3,4,5,6,7,8,9,10]
24+
let originalModes = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
25+
var models = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
2626
override func viewDidLoad() {
2727
super.viewDidLoad()
2828
self.tableView.tableFooterView = UIView(frame: CGRect.zero)
@@ -38,7 +38,7 @@ class DefaultTableViewController:UITableViewController{
3838
delay(1.5, closure: {
3939
self.models.append(random100())
4040
self.tableView.reloadData()
41-
if self.models.count < 12 {
41+
if self.models.count < 18 {
4242
self.tableView.switchRefreshFooter(to: .normal)
4343
}else{
4444
self.tableView.switchRefreshFooter(to: .noMoreData)

Demo/Demo/DianpingRefreshHeader.swift

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,18 @@ class DianpingRefreshHeader:UIView,RefreshableHeader{
1515
override init(frame: CGRect) {
1616
super.init(frame: frame)
1717
imageView.frame = CGRect(x: 0, y: 0, width: 60, height: 60)
18-
imageView.center = CGPoint(x: self.bounds.width/2.0, y: self.bounds.height/2.0)
1918
addSubview(imageView)
2019
}
21-
20+
override func layoutSubviews() {
21+
super.layoutSubviews()
22+
imageView.center = CGPoint(x: self.bounds.width/2.0, y: self.bounds.height/2.0)
23+
}
2224
required init?(coder aDecoder: NSCoder) {
2325
fatalError("init(coder:) has not been implemented")
2426
}
2527
// MARK: - RefreshableHeader -
26-
func heightForRefreshingState()->CGFloat{
27-
return 70
28+
func heightForHeader() -> CGFloat {
29+
return 60.0
2830
}
2931
//监听百分比变化
3032
func percentUpdateDuringScrolling(_ percent:CGFloat){
@@ -47,9 +49,9 @@ class DianpingRefreshHeader:UIView,RefreshableHeader{
4749
imageView.startAnimating()
4850
}
4951
//刷新结束,将要隐藏header
50-
func didBeginEndRefershingAnimation(_ result:RefreshResult){}
52+
func didBeginHideAnimation(_ result:RefreshResult){}
5153
//刷新结束,完全隐藏header
52-
func didCompleteEndRefershingAnimation(_ result:RefreshResult){
54+
func didCompleteHideAnimation(_ result:RefreshResult){
5355
imageView.animationImages = nil
5456
imageView.stopAnimating()
5557
imageView.isHidden = true

0 commit comments

Comments
 (0)