@@ -11,40 +11,20 @@ import ObjectiveC
11
11
12
12
extension UIScrollView {
13
13
14
- override open func willMove( toSuperview newSuperview: UIView ? ) {
15
- super. willMove ( toSuperview: newSuperview)
16
- // print("table willMove toSuperview \(newSuperview)")
17
- if newSuperview == nil {
18
- self . gtmHeader? . observerOpen = false
19
- self . gtmFooter? . observerOpen = false
20
-
21
- self . gtmHeader = nil
22
- self . gtmFooter = nil
23
- }
24
- }
25
-
26
- private var gtmHeader : GTMRefreshHeader ? {
14
+ internal var gtmHeader : GTMRefreshHeader ? {
27
15
get {
28
16
return objc_getAssociatedObject ( self , & GTMRefreshConstant. associatedObjectGtmHeader) as? GTMRefreshHeader
29
17
}
30
18
set {
31
- if newValue == nil {
32
- objc_removeAssociatedObjects ( gtmHeader)
33
- } else {
34
- objc_setAssociatedObject ( self , & GTMRefreshConstant. associatedObjectGtmHeader, newValue, objc_AssociationPolicy. OBJC_ASSOCIATION_RETAIN_NONATOMIC)
35
- }
19
+ objc_setAssociatedObject ( self , & GTMRefreshConstant. associatedObjectGtmHeader, newValue, objc_AssociationPolicy. OBJC_ASSOCIATION_RETAIN_NONATOMIC)
36
20
}
37
21
}
38
- private var gtmFooter : GTMLoadMoreFooter ? {
22
+ internal var gtmFooter : GTMLoadMoreFooter ? {
39
23
get {
40
24
return objc_getAssociatedObject ( self , & GTMRefreshConstant. associatedObjectGtmFooter) as? GTMLoadMoreFooter
41
25
}
42
26
set {
43
- if newValue == nil {
44
- objc_removeAssociatedObjects ( gtmFooter)
45
- } else {
46
- objc_setAssociatedObject ( self , & GTMRefreshConstant. associatedObjectGtmFooter, newValue, objc_AssociationPolicy. OBJC_ASSOCIATION_RETAIN_NONATOMIC)
47
- }
27
+ objc_setAssociatedObject ( self , & GTMRefreshConstant. associatedObjectGtmFooter, newValue, objc_AssociationPolicy. OBJC_ASSOCIATION_RETAIN_NONATOMIC)
48
28
}
49
29
}
50
30
@@ -54,7 +34,7 @@ extension UIScrollView {
54
34
/// - refreshHeader: 下拉刷新动效View必须继承GTMRefreshHeader并且要实现SubGTMRefreshHeaderProtocol,不传值的时候默认使用 DefaultGTMRefreshHeader
55
35
/// - refreshBlock: 刷新数据Block
56
36
@discardableResult
57
- final public func gtm_addRefreshHeaderView( refreshHeader: GTMRefreshHeader ? = DefaultGTMRefreshHeader ( ) , delegate : GTMRefreshHeaderDelegate ? ) -> UIScrollView {
37
+ final public func gtm_addRefreshHeaderView( refreshHeader: GTMRefreshHeader ? = DefaultGTMRefreshHeader ( ) , refreshBlock : @escaping ( ) -> Void ) -> UIScrollView {
58
38
guard refreshHeader is SubGTMRefreshHeaderProtocol else {
59
39
fatalError ( " refreshHeader must implement SubGTMRefreshHeaderProtocol " )
60
40
}
@@ -65,49 +45,23 @@ extension UIScrollView {
65
45
gtmHeader? . removeFromSuperview ( )
66
46
67
47
if let header: GTMRefreshHeader = refreshHeader {
68
- // header.refreshBlock = refreshBlock
69
- header. delegate = delegate
48
+ header. refreshBlock = refreshBlock
70
49
self . insertSubview ( header, at: 0 )
71
50
self . gtmHeader = header
72
51
}
73
52
}
74
53
return self
75
54
}
76
55
77
- // 自定义header文字
78
- final public func setupHeaderText( pullDownToRefreshText: String ? = nil ,
79
- releaseToRefreshText: String ? = nil ,
80
- refreshSuccessText: String ? = nil ,
81
- refreshFailureText: String ? = nil ,
82
- refreshingText: String ? = nil ) {
83
- guard let defaultFooter = self . gtmHeader, defaultFooter is DefaultGTMRefreshHeader else {
84
- return
85
- }
86
- let header = defaultFooter as! DefaultGTMRefreshHeader
87
- if let txt = pullDownToRefreshText {
88
- header. pullDownToRefresh = txt
89
- }
90
- if let txt = releaseToRefreshText {
91
- header. releaseToRefresh = txt
92
- }
93
- if let txt = refreshSuccessText {
94
- header. refreshSuccess = txt
95
- }
96
- if let txt = refreshFailureText {
97
- header. refreshFailure = txt
98
- }
99
- if let txt = refreshingText {
100
- header. refreshing = txt
101
- }
102
- }
56
+
103
57
104
58
/// 添加上拉加载
105
59
///
106
60
/// - Parameters:
107
61
/// - loadMoreFooter: 上拉加载动效View必须继承GTMLoadMoreFooter,不传值的时候默认使用 DefaultGTMLoadMoreFooter
108
62
/// - refreshBlock: 加载更多数据Block
109
63
@discardableResult
110
- final public func gtm_addLoadMoreFooterView( loadMoreFooter: GTMLoadMoreFooter ? = DefaultGTMLoadMoreFooter ( ) , delegate : GTMLoadMoreFooterDelegate ? ) -> UIScrollView {
64
+ final public func gtm_addLoadMoreFooterView( loadMoreFooter: GTMLoadMoreFooter ? = DefaultGTMLoadMoreFooter ( ) , loadMoreBlock : @escaping ( ) -> Void ) -> UIScrollView {
111
65
112
66
guard loadMoreFooter is SubGTMLoadMoreFooterProtocol else {
113
67
fatalError ( " loadMoreFooter must implement SubGTMLoadMoreFooterProtocol " )
@@ -120,39 +74,14 @@ extension UIScrollView {
120
74
gtmFooter? . removeFromSuperview ( )
121
75
122
76
if let footer: GTMLoadMoreFooter = loadMoreFooter {
123
- // footer.loadMoreBlock = loadMoreBlock
124
- footer. delegate = delegate
77
+ footer. loadMoreBlock = loadMoreBlock
125
78
self . insertSubview ( footer, at: 0 )
126
79
self . gtmFooter = footer
127
80
}
128
81
}
129
82
return self
130
83
}
131
84
132
- // 自定义footer文字
133
- final public func setupFooterText( pullUpToRefreshText: String ? = nil ,
134
- loaddingText: String ? = nil ,
135
- noMoreDataText: String ? = nil ,
136
- releaseLoadMoreText: String ? = nil ) {
137
- guard let defaultFooter = self . gtmFooter, defaultFooter is DefaultGTMLoadMoreFooter else {
138
- return
139
- }
140
- let footer = defaultFooter as! DefaultGTMLoadMoreFooter
141
- if let txt = pullUpToRefreshText {
142
- footer. pullUpToRefreshText = txt
143
- footer. messageLabel. text = txt
144
- }
145
- if let txt = loaddingText {
146
- footer. loaddingText = txt
147
- }
148
- if let txt = noMoreDataText {
149
- footer. noMoreDataText = txt
150
- }
151
- if let txt = releaseLoadMoreText {
152
- footer. releaseLoadMoreText = txt
153
- }
154
- }
155
-
156
85
final public func triggerRefreshing( ) {
157
86
self . gtmHeader? . autoRefreshing ( )
158
87
}
0 commit comments