@@ -145,7 +145,8 @@ open class PagingViewController: UIViewController {
145145 pagingView. trailingAnchor. constraint ( equalTo: contentScrollView. trailingAnchor) ,
146146 ] )
147147 } else {
148- if case . all( let menuOptions, _) = options. componentType, case . infinite = menuOptions. displayMode {
148+ if case . all( let menuOptions, _) = options. componentType,
149+ case . infinite = menuOptions. displayMode {
149150 if index == currentPage {
150151 guard let previousPagingView = controllers [ previousPage] . view,
151152 let nextPagingView = controllers [ nextPage] . view else { continue }
@@ -163,16 +164,24 @@ open class PagingViewController: UIViewController {
163164 pagingView. trailingAnchor. constraint ( equalTo: contentScrollView. trailingAnchor) . isActive = true
164165 }
165166 } else {
166- if index == 0 || index == previousPage {
167+ switch ( options. lazyLoadingPage, index) {
168+ case ( . three, 0 ) ,
169+ ( . three, previousPage) ,
170+ ( . all, 0 ) :
171+ // H:|[pagingView]
167172 pagingView. leadingAnchor. constraint ( equalTo: contentScrollView. leadingAnchor) . isActive = true
168- } else {
169- guard let previousPagingView = controllers [ index - 1 ] . view else { continue }
170- if index == controllers. count - 1 || index == nextPage {
171- // H:[pagingView]|
173+ case ( . three, controllers. count - 1 ) ,
174+ ( . three, nextPage) ,
175+ ( . all, controllers. count - 1 ) :
176+ guard let previousPagingView = controllers [ index - 1 ] . view else { continue }
177+ // H:[previousPagingView][pagingView]|
178+ previousPagingView. trailingAnchor. constraint ( equalTo: pagingView. leadingAnchor, constant: 0 ) . isActive = true
172179 pagingView. trailingAnchor. constraint ( equalTo: contentScrollView. trailingAnchor) . isActive = true
173- }
180+ case ( . three, _) , ( . all, _) :
181+ guard let previousPagingView = controllers [ index - 1 ] . view else { continue }
174182 // H:[previousPagingView][pagingView]
175183 previousPagingView. trailingAnchor. constraint ( equalTo: pagingView. leadingAnchor, constant: 0 ) . isActive = true
184+ default : break
176185 }
177186 }
178187 }
@@ -258,6 +267,7 @@ extension PagingViewController: PageLoadable {
258267 guard page >= previousPage &&
259268 page <= nextPage else { return false }
260269 }
270+ case ( _, . all) : return true
261271 }
262272 return true
263273 }
0 commit comments