aboutsummaryrefslogtreecommitdiff
path: root/foray/ForayNewDetailView.swift
diff options
context:
space:
mode:
authorNicholas Tay <nick@windblume.net>2022-03-19 13:08:40 +1100
committerNicholas Tay <nick@windblume.net>2022-03-19 13:08:40 +1100
commitf19a09c0e91668a48c1958fc9a4fa07f963c4142 (patch)
tree0bce6b10129afe7c75239e0f4eea0e2521d838a3 /foray/ForayNewDetailView.swift
parent34531178eb042f5bc1439bce5b6dde543fbb96ab (diff)
downloadforayios-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.swift85
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)
+ }
+}