Untitled
unknown
swift
2 years ago
2.6 kB
5
Indexable
import UIKit import SnapKit class IconMoreCell: UITableViewCell { // MARK: - Properties private lazy var iconImageView: UIImageView = { let imageView = UIImageView() imageView.contentMode = .scaleToFill return imageView }() private lazy var titleLabel: UILabel = { let label = UILabel() label.font = UIFont.systemFont(ofSize: 17) return label }() private lazy var separatorView: UIView = { let view = UIView() view.backgroundColor = .white // Set the color you want for the separator return view }() private lazy var fullSeparatorView: UIView = { let view = UIView() view.backgroundColor = UIColor.groupTableViewBackground return view }() // MARK: - Initialization override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) setupUI() } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) setupUI() } // MARK: - UI Setup private func setupUI() { contentView.addSubview(iconImageView) contentView.addSubview(titleLabel) contentView.addSubview(separatorView) contentView.addSubview(fullSeparatorView) // Set up constraints using SnapKit iconImageView.snp.makeConstraints { make in make.centerY.equalToSuperview() make.leading.equalToSuperview().offset(12) make.size.equalTo(24) } titleLabel.snp.makeConstraints { make in make.centerY.equalToSuperview() make.leading.equalTo(iconImageView.snp.trailing).offset(8) make.trailing.equalToSuperview().offset(-8) } separatorView.snp.makeConstraints { make in make.leading.equalTo(titleLabel) make.trailing.equalToSuperview().offset(-12) make.bottom.equalToSuperview() make.height.equalTo(1) } fullSeparatorView.snp.makeConstraints { make in make.leading.equalToSuperview() make.trailing.equalToSuperview() make.bottom.equalTo(separatorView.snp.top) make.height.greaterThanOrEqualTo(1) make.height.equalTo(1).priority(.low) // Set a lower priority to allow dynamic height of the cell } } // MARK: - Configuration func configure(with icon: UIImage, title: String) { iconImageView.image = icon titleLabel.text = title } }
Editor is loading...