Протокол описывающий поведение вьюхи при скелетной загрузки
Класс ответствененный за формирование вьюхи для скелетной загрузки. Объекту передаются скелетные вьюхи, из которых извлекаются контуры подвьюх. Которые склеиваются в маску.
Прослойка для поддержки скелетона в списках
- iOS 10.0+
- Swift 4.1
- Xcode 9
Для интеграции HHSkeleton пропиши в Cartfile
:
github "Heads-and-Hands/architecture-team-a-ios"
Запусти команду carthage update --platform ios
. Добавь в проект:
HHModule.framework
HHIndication.framework
Skeleton.framework
- [Один раз] Реализуй протокол
ARCHSkeletonView
для вьюх:
- UILabel
- UIImageView и т.д.
Настрой вьюхи под свой проект - данные, скругления и т.д. Если не сделать просто будет браться контур по фрейму, если он не нулевой
extension UILabel: ARCHSkeletonView {
public func set(isEnableSkeleton: Bool) {
if isEnableSkeleton {
text = "ARCHSkeletonView ARCHSkeletonView ARCHSkeletonView"
}
}
public func contours(on rootView: UIView) -> [UIBezierPath] {
let frame = rootView.convert(bounds, from: self)
let cornerRadius: CGFloat = 3.0
let path = UIBezierPath(roundedRect: frame, cornerRadius: cornerRadius)
return [path]
}
}
- Для кастомных вьюх так же реализуй протокол
ARCHSkeletonView
:
var skeletonSubviews: [UIView]? {
return [imageView, titleLabel, detailLabel]
}
- Для конкретного экрана настрой
ARCHSkeletonViewProvider
:
- передай все скелетные вьюхи
- укажи цвет градиента
- укажи направление анимации
- Передай экземляр
ARCHSkeletonViewProvider
вIndicationHelper