В одном из моих контроллеров я использую UICollectionView с двухсторонними ячейками (на лицевой стороне ячейки есть кнопка, и, если пользователь нажимает на нее, ячейка должна показать ему / ей другую сторону ячейки).
поэтому у меня в классе ячеек это:
firstView = UIView()
...
self.addSubview(firstView)
infoView = UIView()
...
self.insertSubview(infoView, belowSubview: firstView)
В обоих представлениях много элементов, для структурирования этих элементов я использую в основном ограничения и привязки визуального формата.
т.е.
let topFirstViewConstraint = firstView.topAnchor.constraint(equalTo: self.topAnchor, constant: 4)
allConstraints.append(topFirstViewConstraint)
...
let goButtonCenter = goButton.centerXAnchor.constraint(equalTo: firstView.centerXAnchor, constant: 0)
allConstraints.append(goButtonCenter)
Для переключения между лицом и видом сзади я использую UIView.transition:
UIView.transition(from: firstView, to: infoView, duration: 0.2, options: .transitionFlipFromLeft) { (success) in
}
Это работает как шарм, я неу меня вообще есть ошибки autoLayout.
Но если я пытаюсь переключиться с ограничений firstView
на infoView
firstView
, то это становится диким и наоборот (у меня все еще нет ошибок, но я знаю,как должны выглядеть эти взгляды, и это беспорядок).Я пытался использовать self.updateConstraints()
при закрытии перехода, но это не работает.
Кто-нибудь испытывал что-то подобное?