diff options
author | Nicholas Tay <nick@windblume.net> | 2022-03-19 13:08:40 +1100 |
---|---|---|
committer | Nicholas Tay <nick@windblume.net> | 2022-03-19 13:08:40 +1100 |
commit | f19a09c0e91668a48c1958fc9a4fa07f963c4142 (patch) | |
tree | 0bce6b10129afe7c75239e0f4eea0e2521d838a3 /foray/ForayNewDetailView.swift | |
parent | 34531178eb042f5bc1439bce5b6dde543fbb96ab (diff) | |
download | forayios-f19a09c0e91668a48c1958fc9a4fa07f963c4142.tar.gz forayios-f19a09c0e91668a48c1958fc9a4fa07f963c4142.tar.bz2 forayios-f19a09c0e91668a48c1958fc9a4fa07f963c4142.zip |
Detail view is now programatically created
Using SnapKit and some experimentation around the VC. Next step is to
change segue and then maybe get rid of storyboard all together.
Diffstat (limited to '')
-rw-r--r-- | foray/ForayNewDetailView.swift | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/foray/ForayNewDetailView.swift b/foray/ForayNewDetailView.swift new file mode 100644 index 0000000..e7d7dbf --- /dev/null +++ b/foray/ForayNewDetailView.swift @@ -0,0 +1,85 @@ +// +// ForayNewDetailView.swift +// foray +// +// Created by Nicholas Tay on 18/3/2022. +// + +import UIKit + +class ForayNewDetailView: 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 + return l + }() + + override init(frame: CGRect) { + super.init(frame: frame) + initialiseViews() + } + + required init?(coder: NSCoder) { + fatalError("unreachable") + } + + private func initialiseViews() { + addSubview(nameLabel) + addSubview(itemImageView) + addSubview(descLabel) + setupConstraints() + } + + private func setupConstraints() { + nameLabel.snp.makeConstraints { (make) in + make.top.equalToSuperview().inset(8) + make.leading.trailing.equalToSuperview().inset(8) + } + itemImageView.snp.makeConstraints { (make) in + make.top.equalTo(nameLabel.snp.bottom).offset(8) + make.leading.trailing.equalToSuperview() + make.height.equalTo(150) + } + descLabel.snp.makeConstraints { (make) in + make.top.equalTo(itemImageView.snp.bottom).offset(8) + 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) + } +} |