// // 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.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 } }