mirror of
https://github.com/Instagram/IGListKit
synced 2026-05-06 15:08:50 +00:00
Summary: This API is dependent on dynamic types right now, making it awkward and unsafe to use in Swift. By providing a generic wrapper, we can make it safer to use. Reviewed By: joetam Differential Revision: D26057302 fbshipit-source-id: ec5d5ed202900f6171761214900fde1f9615e7f5
40 lines
1.2 KiB
Swift
40 lines
1.2 KiB
Swift
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
import IGListKit
|
|
import IGListSwiftKit
|
|
import UIKit
|
|
|
|
func spinnerSectionController() -> ListSingleSectionController {
|
|
let configureBlock = { (_: Any, cell: SpinnerCell) in
|
|
cell.activityIndicator.startAnimating()
|
|
}
|
|
|
|
let sizeBlock = { (_: Any, context: ListCollectionContext?) -> CGSize in
|
|
guard let context = context else { return .zero }
|
|
return CGSize(width: context.containerSize.width, height: 100)
|
|
}
|
|
|
|
return ListSingleSectionController(configure: configureBlock, size: sizeBlock)
|
|
}
|
|
|
|
final class SpinnerCell: UICollectionViewCell {
|
|
|
|
lazy var activityIndicator: UIActivityIndicatorView = {
|
|
let view = UIActivityIndicatorView()
|
|
view.style = UIActivityIndicatorView.defaultStyle
|
|
self.contentView.addSubview(view)
|
|
return view
|
|
}()
|
|
|
|
override func layoutSubviews() {
|
|
super.layoutSubviews()
|
|
let bounds = contentView.bounds
|
|
activityIndicator.center = CGPoint(x: bounds.midX, y: bounds.midY)
|
|
}
|
|
|
|
}
|