// // ForayDetailViewController.swift // foray // // Created by Nicholas Tay on 16/3/2022. // import UIKit class ForayDetailViewController: UIViewController { let scrollView: UIScrollView = { let sv = UIScrollView() sv.alwaysBounceVertical = true // just for fun return sv }() let container = UIView() let nameLabel: UILabel = { let l = UILabel() l.font = UIFont.preferredFont(forTextStyle: .largeTitle) l.adjustsFontForContentSizeCategory = true l.numberOfLines = 3 l.textAlignment = .center return l }() let itemImageView: UIImageView = { let iv = UIImageView() iv.contentMode = .scaleAspectFit return iv }() let descLabel: UILabel = { let l = UILabel() l.font = UIFont.preferredFont(forTextStyle: .body) l.adjustsFontForContentSizeCategory = true l.numberOfLines = 10 return l }() override func viewDidLoad() { super.viewDidLoad() self.title = "Details" self.view.backgroundColor = .systemBackground initialiseViews() } private func initialiseViews() { self.view.addSubview(scrollView) scrollView.addSubview(container) container.addSubview(nameLabel) container.addSubview(itemImageView) container.addSubview(descLabel) setupConstraints() } private func setupConstraints() { scrollView.snp.makeConstraints { (make) in make.edges.equalTo(self.view.snp.margins) } container.snp.makeConstraints { (make) in make.edges.equalToSuperview() make.width.equalTo(scrollView.snp.width) } nameLabel.snp.makeConstraints { (make) in make.top.equalToSuperview().inset(16) make.leading.trailing.equalToSuperview().inset(8) } itemImageView.snp.makeConstraints { (make) in make.top.equalTo(nameLabel.snp.bottom).offset(32) make.leading.trailing.equalToSuperview() make.height.equalTo(150) } descLabel.snp.makeConstraints { (make) in make.top.equalTo(itemImageView.snp.bottom).offset(32) make.leading.trailing.equalToSuperview() } } public func setSelectedItem(selectedItem: PenguinItem) { nameLabel.text = selectedItem.name itemImageView.image = UIImage(named: selectedItem.id) descLabel.text = "Type: " switch selectedItem.type { case .item: descLabel.text! += "Item" case .quest: descLabel.text! += "Quest" itemImageView.image = UIImage(named: "spy") } descLabel.text! += "\nID: " + selectedItem.id let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" descLabel.text! += "\nReleased: " + dateFormatter.string(from: selectedItem.releaseDate) } }