Код: Выделить всё
final class MFTestLabel: SUCollectionCell {
// MARK: - Properties
weak var delegate: MFTestLabelDelegate?
private let containerView = UIView()
private let label = UILabel()
private let switchView = SUSwitch()
override func drawSelf() {
label.numberOfLines = 0
label.textAlignment = .center
label.isUserInteractionEnabled = true
containerView.layer.cornerRadius = 16
containerView.backgroundColor = .lightGray
switchView.addTarget(self, action: #selector(didTapSwitch), for: .touchUpInside)
contentView.addSubview(containerView)
containerView.addSubview(switchView)
containerView.addSubview(label)
}
@objc private func didTapSwitch() {
var state = configurationState
state.isSelected = true
updateConfiguration(using: state)
}
override func makeConstraints() {
containerView.snp.makeConstraints { make in
make.top.bottom.equalToSuperview().inset(4)
make.height.equalTo(40)
make.leading.trailing.equalToSuperview().inset(4)
}
switchView.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.trailing.equalToSuperview().inset(10)
}
label.snp.makeConstraints { make in
make.center.equalToSuperview()
}
}
Код: Выделить всё
@objc private func didTapSwitch() {
var state = configurationState
state.isSelected = true
updateConfiguration(using: state)
}
Согласно документации https://developer.apple.com/ document/uikit/uicollectionviewcell/3600950-updateconfiguration
Цитата
Избегайте прямого вызова этого метода. Вместо этого используйте setNeedsUpdateConfiguration() для запроса обновления.
Переопределите этот метод в подклассе, чтобы обновить конфигурацию ячейки, используя предоставленное состояние.
Я пытался использовать примеры кода из репозиториев Apple.
Подробнее здесь: https://stackoverflow.com/questions/785 ... tion-swift