// // ThemeTwoVC.swift // WOKA // // Created by Bilal on 24/05/2024. // import UIKit class ThemeTwoVC: UIViewController { weak var delegate: ChildViewControllerDelegate? @IBOutlet weak var collectionView: UICollectionView! @IBOutlet weak var liveTvView: UIView! @IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var avatarImage: UIImageView! var vm = ThemeTwoVM() deinit{ NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: K.NotificationCenterReloads.reloadTheme), object: nil) } override func viewDidLoad() { super.viewDidLoad() vm.vc = self vm.initView() liveTvView.addTapGesture { [weak self] in guard let self else{return} delegate?.didPressSwitchButton(from: self) } } override func viewDidLayoutSubviews() { vm.setData() } @IBAction func sideBarBtnTapped(_ sender: UIButton) { self.sideMenuController?.revealMenu() } } // MARK: - CollectionView DataSource Delegate extension ThemeTwoVC : CollectionViewSRC{ func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { vm.cellData.count } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: K.CellIdentifier.Theme.homeExploreCell, for: indexPath) as! HomeExploreCell cell.setData(data : vm.cellData[indexPath.row]) return cell } func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { print(indexPath.row) } } // MARK: - Collection Flow Layout extension ThemeTwoVC : UICollectionViewDelegateFlowLayout{ func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { return 5 } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { return 5 } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { return UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5) } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { let itemsPerRow: CGFloat = 3 let paddingSpace = 5 * (itemsPerRow + 1) let availableWidth = collectionView.frame.width - paddingSpace let widthPerItem = availableWidth / itemsPerRow return CGSize(width: widthPerItem, height: widthPerItem + (widthPerItem / 6)) } // func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { // return UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5) // } }