43 lines
1.1 KiB
Swift
43 lines
1.1 KiB
Swift
//
|
|
// CollectionSkeleton.swift
|
|
// SkeletonView-iOS
|
|
//
|
|
// Created by Juanpe Catalán on 02/11/2017.
|
|
// Copyright © 2017 SkeletonView. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
enum CollectionAssociatedKeys {
|
|
static var dummyDataSource = "dummyDataSource"
|
|
static var dummyDelegate = "dummyDelegate"
|
|
}
|
|
|
|
protocol CollectionSkeleton {
|
|
var skeletonDataSource: SkeletonCollectionDataSource? { get set }
|
|
var skeletonDelegate: SkeletonCollectionDelegate? { get set }
|
|
var estimatedNumberOfRows: Int { get }
|
|
|
|
func addDummyDataSource()
|
|
func updateDummyDataSource()
|
|
func removeDummyDataSource(reloadAfter: Bool)
|
|
func disableUserInteraction()
|
|
func enableUserInteraction()
|
|
}
|
|
|
|
extension CollectionSkeleton where Self: UIScrollView {
|
|
var estimatedNumberOfRows: Int { return 0 }
|
|
func addDummyDataSource() {}
|
|
func removeDummyDataSource(reloadAfter: Bool) {}
|
|
|
|
func disableUserInteraction() {
|
|
isUserInteractionEnabled = false
|
|
isScrollEnabled = false
|
|
}
|
|
|
|
func enableUserInteraction() {
|
|
isUserInteractionEnabled = true
|
|
isScrollEnabled = true
|
|
}
|
|
}
|