Вручную вызвать updateConfiguration Swift.IOS

Программируем под IOS
Anonymous
Вручную вызвать updateConfiguration Swift.

Сообщение Anonymous »

У меня есть простая ячейка, содержащая текст и элемент управления.

Код: Выделить всё

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)
}
Почему Apple не рекомендует использовать updateConfiguration(using:state)?

Согласно документации https://developer.apple.com/ document/uikit/uicollectionviewcell/3600950-updateconfiguration
Цитата

Избегайте прямого вызова этого метода. Вместо этого используйте setNeedsUpdateConfiguration() для запроса обновления.
Переопределите этот метод в подклассе, чтобы обновить конфигурацию ячейки, используя предоставленное состояние.

Я пытался использовать примеры кода из репозиториев Apple.

Подробнее здесь: https://stackoverflow.com/questions/785 ... tion-swift

Вернуться в «IOS»