Untitled
unknown
swift
2 years ago
2.6 kB
8
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...