Advertisement
Guest User

TVCell

a guest
Nov 19th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 4.15 KB | None | 0 0
  1. //
  2. //  ProfileActiveOrdersTableViewCell.swift
  3. //  Shop
  4. //
  5. //  Created by Bogdan Filippov on 16/04/2019.
  6. //  Copyright © 2019 Bogdan Filippov. All rights reserved.
  7. //
  8.  
  9. import UIKit
  10.  
  11. class ProfileActiveOrdersTableViewCell: UITableViewCell {
  12.    
  13.     var activeOrders = OrderCDManager.shared.active
  14.    
  15.     var orderDidSaveRecordObserver: Any?
  16.     var orderDidSaveRecordsArrayObserver: Any?
  17.    
  18.     var updateCollection: UpdateCollection?
  19.    
  20.     @IBOutlet weak var collectionView: UICollectionView!
  21.     @IBOutlet weak var dealHistoryButtouOutlet: UIButton!
  22.     @IBOutlet weak var noneOrdersStringLabel: UILabel!
  23.    
  24.     // MARK: - Constraints
  25.    
  26.     @IBOutlet weak var activeOrderBottomConstraint: NSLayoutConstraint?
  27.     var heightAnchorConstraint: NSLayoutConstraint?
  28.    
  29.     override func awakeFromNib() {
  30.         super.awakeFromNib()
  31.         setupInterface()
  32.         setupDelegates()
  33.         setupActiveOrdersInterface()
  34.     }
  35.    
  36.     override func willMove(toWindow newWindow: UIWindow?) {
  37.         if newWindow == nil {
  38.             removeObservers()
  39.         } else {
  40.             setupObservers()
  41.         }
  42.     }
  43.    
  44.     func setupInterface() {
  45.         dealHistoryButtouOutlet.layer.cornerRadius = dealHistoryButtouOutlet.layer.frame.size.height / 2
  46.         dealHistoryButtouOutlet.layer.borderColor = ApplicationColor.green.cgColor
  47.         dealHistoryButtouOutlet.layer.borderWidth = 1
  48.     }
  49.    
  50.     func setupActiveOrdersInterface() {
  51.        
  52.         DispatchQueue.main.async {
  53.             if self.activeOrders.count == 0 {
  54.                 self.noneOrdersStringLabel.isHidden = false
  55.                 self.activeOrderBottomConstraint?.isActive = false
  56.                
  57.                 if self.heightAnchorConstraint == nil {
  58.                     self.heightAnchorConstraint = self.contentView.heightAnchor.constraint(equalToConstant: 100)
  59.                    
  60.                     if let heightAnchorConstraint = self.heightAnchorConstraint {
  61.                         NSLayoutConstraint.activate([
  62.                             heightAnchorConstraint
  63.                         ])
  64.                     }
  65.                 }
  66.            
  67.                 self.layoutIfNeeded()
  68. //                self.tableView?.beginUpdates()
  69. //                self.tableView?.endUpdates()
  70.             } else {
  71.                 for const in self.contentView.constraints {
  72.                     if const.isEqual(self.heightAnchorConstraint) {
  73.                         const.constant = 271
  74.                         self.heightAnchorConstraint = nil
  75.                     }
  76.                 }
  77.                
  78.                 self.noneOrdersStringLabel.isHidden = true
  79.                 self.activeOrderBottomConstraint?.isActive = true
  80.                
  81.                 self.layoutIfNeeded()
  82. //                self.tableView?.beginUpdates()
  83. //                self.tableView?.endUpdates()
  84.             }
  85.         }
  86.        
  87.     }
  88.    
  89.     func setupDelegates() {
  90.         collectionView.delegate = self
  91.         collectionView.dataSource = self
  92.     }
  93.    
  94.     func setupObservers() {
  95.         orderDidSaveRecordObserver = NotificationCenter.default.addObserver(forName: OrderCDManager.shared.didSaveRecord, object: nil, queue: .main) { (_) in
  96.             self.activeOrders = OrderCDManager.shared.active
  97.             self.setupActiveOrdersInterface()
  98.             self.collectionView.reloadData()
  99.         }
  100.         orderDidSaveRecordsArrayObserver = NotificationCenter.default.addObserver(forName: OrderCDManager.shared.didSaveRecordsArray, object: nil, queue: .main) { (_) in
  101.             self.activeOrders = OrderCDManager.shared.active
  102.             self.setupActiveOrdersInterface()
  103.             self.collectionView.reloadData()
  104.         }
  105.     }
  106.    
  107.     func removeObservers() {
  108.         if let observer = orderDidSaveRecordObserver {
  109.             NotificationCenter.default.removeObserver(observer)
  110.         }
  111.         if let observer = orderDidSaveRecordsArrayObserver {
  112.             NotificationCenter.default.removeObserver(observer)
  113.         }
  114.     }
  115.  
  116.     @IBAction func dealsHistoryButtonAction(_ sender: UIButton, forEvent event: UIEvent) {
  117.        
  118.     }
  119.    
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement