aboutsummaryrefslogtreecommitdiff
path: root/foray/Scenes/ForayTableViewCell.swift
diff options
context:
space:
mode:
Diffstat (limited to 'foray/Scenes/ForayTableViewCell.swift')
-rw-r--r--foray/Scenes/ForayTableViewCell.swift84
1 files changed, 84 insertions, 0 deletions
diff --git a/foray/Scenes/ForayTableViewCell.swift b/foray/Scenes/ForayTableViewCell.swift
new file mode 100644
index 0000000..3849169
--- /dev/null
+++ b/foray/Scenes/ForayTableViewCell.swift
@@ -0,0 +1,84 @@
+//
+// ForayNewTableViewCell.swift
+// foray
+//
+// Created by Nicholas Tay on 18/3/2022.
+//
+
+import UIKit
+import SnapKit
+
+class ForayTableViewCell: UITableViewCell {
+
+ let container: UIView = UIView()
+
+ let nameLabel: UILabel = {
+ let l = UILabel()
+ l.font = UIFont.preferredFont(forTextStyle: .headline)
+ l.numberOfLines = 3
+ l.adjustsFontForContentSizeCategory = true
+ return l
+ }()
+
+ let descLabel: UILabel = {
+ let l = UILabel()
+ l.font = UIFont.preferredFont(forTextStyle: .caption1)
+ l.adjustsFontForContentSizeCategory = true
+ return l
+ }()
+
+ let itemImageView: UIImageView = {
+ let iv = UIImageView()
+ iv.contentMode = .scaleAspectFit
+ return iv
+ }()
+
+ override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+ super.init(style: style, reuseIdentifier: reuseIdentifier)
+ initialiseViews()
+ }
+
+ required init?(coder: NSCoder) {
+ fatalError("unreachable")
+ }
+
+ private func initialiseViews() {
+ contentView.addSubview(container)
+ container.addSubview(nameLabel)
+ container.addSubview(descLabel)
+ container.addSubview(itemImageView)
+ setupConstraints()
+ }
+
+ private func setupConstraints() {
+ container.snp.makeConstraints { (make) in
+ make.edges.equalTo(contentView.snp.margins)
+ }
+
+ let imageWidth = 64
+ let imageHeight = 38
+ nameLabel.snp.makeConstraints { (make) in
+ make.top.equalToSuperview()
+ make.leading.equalToSuperview()
+ make.trailing.equalTo(itemImageView.snp.trailing).inset(imageWidth)
+ }
+ descLabel.snp.makeConstraints { (make) in
+ make.top.equalTo(nameLabel.snp.bottom)
+ make.leading.equalToSuperview()
+ make.bottom.equalToSuperview()
+ make.trailing.equalTo(itemImageView.snp.trailing).inset(imageWidth)
+ }
+ itemImageView.snp.makeConstraints { (make) in
+ make.top.equalToSuperview()
+ make.trailing.equalToSuperview()
+ make.width.equalTo(imageWidth)
+ make.height.equalTo(imageHeight)
+ }
+ }
+
+ public func setData(name: String, desc: String, img: UIImage) {
+ nameLabel.text = name
+ descLabel.text = desc
+ itemImageView.image = img
+ }
+}