87 lines
2.9 KiB
Swift
87 lines
2.9 KiB
Swift
|
//
|
||
|
// TrendTableViewCell.swift
|
||
|
//
|
||
|
//
|
||
|
// Created by MainasuK on 2022-4-13.
|
||
|
//
|
||
|
|
||
|
import UIKit
|
||
|
|
||
|
public final class TrendTableViewCell: UITableViewCell {
|
||
|
|
||
|
public let trendView = TrendView()
|
||
|
|
||
|
let separatorLine = UIView.separatorLine
|
||
|
|
||
|
public override func prepareForReuse() {
|
||
|
super.prepareForReuse()
|
||
|
|
||
|
configureSeparator(style: .inset)
|
||
|
}
|
||
|
|
||
|
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
|
||
|
super.init(style: style, reuseIdentifier: reuseIdentifier)
|
||
|
_init()
|
||
|
}
|
||
|
|
||
|
required init?(coder: NSCoder) {
|
||
|
super.init(coder: coder)
|
||
|
_init()
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
extension TrendTableViewCell {
|
||
|
|
||
|
private func _init() {
|
||
|
trendView.translatesAutoresizingMaskIntoConstraints = false
|
||
|
contentView.addSubview(trendView)
|
||
|
NSLayoutConstraint.activate([
|
||
|
trendView.topAnchor.constraint(equalTo: contentView.topAnchor),
|
||
|
trendView.leadingAnchor.constraint(equalTo: contentView.layoutMarginsGuide.leadingAnchor),
|
||
|
trendView.trailingAnchor.constraint(equalTo: contentView.layoutMarginsGuide.trailingAnchor),
|
||
|
trendView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor),
|
||
|
])
|
||
|
|
||
|
configureSeparator(style: .inset)
|
||
|
|
||
|
accessibilityElements = [trendView]
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
extension TrendTableViewCell {
|
||
|
|
||
|
public enum SeparatorStyle {
|
||
|
case edge
|
||
|
case inset
|
||
|
}
|
||
|
|
||
|
public func configureSeparator(style: SeparatorStyle) {
|
||
|
separatorLine.removeFromSuperview()
|
||
|
separatorLine.removeConstraints(separatorLine.constraints)
|
||
|
|
||
|
switch style {
|
||
|
case .edge:
|
||
|
separatorLine.translatesAutoresizingMaskIntoConstraints = false
|
||
|
contentView.addSubview(separatorLine)
|
||
|
NSLayoutConstraint.activate([
|
||
|
separatorLine.leadingAnchor.constraint(equalTo: contentView.leadingAnchor),
|
||
|
separatorLine.trailingAnchor.constraint(equalTo: contentView.trailingAnchor),
|
||
|
separatorLine.bottomAnchor.constraint(equalTo: contentView.bottomAnchor),
|
||
|
separatorLine.heightAnchor.constraint(equalToConstant: UIView.separatorLineHeight(of: contentView)),
|
||
|
])
|
||
|
case .inset:
|
||
|
separatorLine.translatesAutoresizingMaskIntoConstraints = false
|
||
|
contentView.addSubview(separatorLine)
|
||
|
NSLayoutConstraint.activate([
|
||
|
separatorLine.leadingAnchor.constraint(equalTo: contentView.layoutMarginsGuide.leadingAnchor),
|
||
|
separatorLine.trailingAnchor.constraint(equalTo: contentView.trailingAnchor),
|
||
|
separatorLine.bottomAnchor.constraint(equalTo: contentView.bottomAnchor),
|
||
|
separatorLine.heightAnchor.constraint(equalToConstant: UIView.separatorLineHeight(of: contentView)),
|
||
|
])
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|