Showing
2 changed files
with
8 additions
and
57 deletions
| 1 | -// | ||
| 2 | -// Reusable+cell.swift | ||
| 3 | -// InterQR-Internship | ||
| 4 | -// | ||
| 5 | -// Created by Leyter on 09.06.2022. | ||
| 6 | -// | ||
| 7 | - | ||
| 8 | -import Foundation | ||
| 9 | -import UIKit | ||
| 10 | - | ||
| 11 | -protocol Reusable: AnyObject { | ||
| 12 | - static var reuseIdentifier: String { get } | ||
| 13 | -} | ||
| 14 | - | ||
| 15 | -extension Reusable { | ||
| 16 | - static var reuseIdentifier: String { | ||
| 17 | - return String(describing: Self.self) | ||
| 18 | - } | ||
| 19 | -} | ||
| 20 | - | ||
| 21 | -// swiftlint:disable force_cast | ||
| 22 | - | ||
| 23 | -extension UICollectionView { | ||
| 24 | - func registerReusableCell<T: UICollectionViewCell>(_: T.Type) where T: Reusable { | ||
| 25 | - self.register(T.self, forCellWithReuseIdentifier: T.reuseIdentifier) | ||
| 26 | - } | ||
| 27 | - | ||
| 28 | - func dequeueReusableCell<T: UICollectionViewCell>(for indexPath: IndexPath) -> T where T: Reusable { | ||
| 29 | - return self.dequeueReusableCell(withReuseIdentifier: T.reuseIdentifier, for: indexPath) as! T | ||
| 30 | - } | ||
| 31 | - | ||
| 32 | - func registerReusableSupplementaryView<T: UICollectionReusableView>(elementKind: String, _: T.Type) where T: Reusable { | ||
| 33 | - self.register(T.self, forSupplementaryViewOfKind: elementKind, withReuseIdentifier: T.reuseIdentifier) | ||
| 34 | - } | ||
| 35 | - | ||
| 36 | - func dequeueReusableSupplementaryView<T: UICollectionReusableView>(ofKind elementKind: String, for indexPath: IndexPath) -> T where T: Reusable { | ||
| 37 | - return self.dequeueReusableSupplementaryView(ofKind: elementKind, withReuseIdentifier: T.reuseIdentifier, for: indexPath) as! T | ||
| 38 | - } | ||
| 39 | -} | ||
| 40 | - | ||
| 41 | -extension UITableView { | ||
| 42 | - func registerReusableCell<T: UITableViewCell>(_: T.Type) where T: Reusable { | ||
| 43 | - self.register(T.self, forCellReuseIdentifier: T.reuseIdentifier) | ||
| 44 | - } | ||
| 45 | - | ||
| 46 | - func registerReusableView<T: UITableViewHeaderFooterView>(_: T.Type) where T: Reusable { | ||
| 47 | - self.register(T.self, forHeaderFooterViewReuseIdentifier: T.reuseIdentifier) | ||
| 48 | - } | ||
| 49 | - | ||
| 50 | - func dequeueReusableCell<T: UITableViewCell>(for indexPath: IndexPath) -> T where T: Reusable { | ||
| 51 | - return self.dequeueReusableCell(withIdentifier: T.reuseIdentifier, for: indexPath) as! T | ||
| 52 | - } | ||
| 53 | - | ||
| 54 | - func dequeueReusableView<T: UITableViewHeaderFooterView>() -> T where T: Reusable { | ||
| 55 | - return self.dequeueReusableHeaderFooterView(withIdentifier: T.reuseIdentifier) as! T | ||
| 56 | - } | ||
| 57 | -} |
Please
register
or
login
to post a comment