* Fixed TableView skeleton cannot hide if style is insetGrouped * Fixed show skeleton button not visible * Update the fix base on PR comments
69 lines
1.5 KiB
Swift
69 lines
1.5 KiB
Swift
// Copyright © 2018 SkeletonView. All rights reserved.
|
|
|
|
import UIKit
|
|
|
|
extension UIView {
|
|
|
|
@objc var subviewsSkeletonables: [UIView] {
|
|
subviewsToSkeleton.filter { $0.isSkeletonable }
|
|
}
|
|
|
|
@objc var subviewsToSkeleton: [UIView] {
|
|
subviews
|
|
}
|
|
|
|
}
|
|
|
|
extension UITableView {
|
|
|
|
override var subviewsToSkeleton: [UIView] {
|
|
// on `UIViewController'S onViewDidLoad`, the window is still nil.
|
|
// Some developer trying to call `view.showAnimatedSkeleton()`
|
|
// when the request or data is loading which sometimes happens before the ViewDidAppear
|
|
guard window != nil else { return [] }
|
|
|
|
var result = [UIView]()
|
|
|
|
for subview in subviews {
|
|
if String(describing: type(of: subview)) == "UITableViewWrapperView" {
|
|
result.append(contentsOf: subview.subviews)
|
|
} else {
|
|
result.append(subview)
|
|
}
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
}
|
|
|
|
extension UITableViewCell {
|
|
override var subviewsToSkeleton: [UIView] {
|
|
contentView.subviews
|
|
}
|
|
}
|
|
|
|
extension UITableViewHeaderFooterView {
|
|
override var subviewsToSkeleton: [UIView] {
|
|
contentView.subviews
|
|
}
|
|
}
|
|
|
|
extension UICollectionView {
|
|
override var subviewsToSkeleton: [UIView] {
|
|
subviews
|
|
}
|
|
}
|
|
|
|
extension UICollectionViewCell {
|
|
override var subviewsToSkeleton: [UIView] {
|
|
contentView.subviews
|
|
}
|
|
}
|
|
|
|
extension UIStackView {
|
|
override var subviewsToSkeleton: [UIView] {
|
|
arrangedSubviews
|
|
}
|
|
}
|