Commit 52ed064f88ce948d23da5a9e29a775c246be1b2c

Authored by Dmitriy Tymofyeyev
1 parent 98fa37c3

Add reusable+cell

  1 +//
  2 +// Reuseble + Cell.swift
  3 +// InterQR-Internship
  4 +//
  5 +// Created by Дмитрий Тимофеев on 19.06.2022.
  6 +//
  7 +
  8 +import Foundation
... ...
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