// // MenuViewController.swift // AvH Plan // // Created by Deniz Duezgoeren on 11.07.19. // Copyright © 2019 Deniz Duezgoeren. All rights reserved. // import UIKit class MenuViewController : UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { let reuseIdentifier = "cell" @IBOutlet weak var collectionView: UICollectionView! var items = [String]() private let refreshControl = UIRefreshControl() let df = DataFetcher() override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) if #available(iOS 10.0, *) { collectionView.refreshControl = refreshControl } else { collectionView.addSubview(refreshControl) } refreshControl.addTarget(self, action: #selector(objDoAsync(_:)), for: .valueChanged) refreshControl.tintColor = UIColor(red: 0.39, green: 0.71, blue: 0.96, alpha: 1.0) refreshControl.attributedTitle = NSAttributedString(string: "Fetching the food menu...") } @objc private func objDoAsync(_ sender: Any) { df.doAsync(do: "menu") { menuItems in self.items = menuItems as! [String] self.collectionView.reloadData() self.refreshControl.endRefreshing() } } override func viewDidLoad() { super.viewDidLoad() collectionView.backgroundColor = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1.0) self.items = self.df.readMenu() self.collectionView.reloadData() } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return self.items.count } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! MenuViewCell if self.items.count != 0 { cell.content.text = self.items[indexPath.item] } cell.backgroundColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0) return cell } func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { print("You selected cell#\(indexPath.item)!") } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { return CGSize(width: view.frame.size.width, height: 64) } }