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