// // ForayNewTableViewCell.swift // foray // // Created by Nicholas Tay on 18/3/2022. // import UIKit import SnapKit class ForayNewTableViewCell: UITableViewCell { let container: UIView = UIView() let nameLabel: UILabel = { let l = UILabel() l.font = UIFont.preferredFont(forTextStyle: .headline) l.adjustsFontForContentSizeCategory = true return l }() let descLabel: UILabel = { let l = UILabel() l.font = UIFont.preferredFont(forTextStyle: .body) 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.top.bottom.equalToSuperview() make.trailing.leading.equalToSuperview().inset(12) // better way to do this? } nameLabel.snp.makeConstraints { (make) in make.top.equalToSuperview().inset(8) make.leading.equalToSuperview().inset(8) make.trailing.equalTo(itemImageView.snp.trailing).inset(75) // better way to do this? } descLabel.snp.makeConstraints { (make) in make.top.equalTo(nameLabel.snp.bottom).offset(8) make.leading.equalToSuperview().inset(8) make.bottom.equalToSuperview().inset(8) make.trailing.equalTo(itemImageView.snp.trailing).inset(75) // better way to do this? } itemImageView.snp.makeConstraints { (make) in make.top.equalToSuperview().inset(8) make.trailing.equalToSuperview().inset(8) make.width.equalTo(68) make.height.equalTo(44) } } public func setData(name: String, desc: String, img: UIImage) { nameLabel.text = name descLabel.text = desc itemImageView.image = img } }