Я скрываю и скрываю dropDownView (UIView, состоящий из текстового поля и кнопки), основанный на сегменте, повернутом в элементе управления сегментом.Ниже приведена иерархия представлений: -
Ниже приведен код, который скрывает / отображает dropDownView: -
private func animateView(view: UIStackView, toHidden hidden: Bool) {
UIView.animate(withDuration: 0.25)
{
let firstView = view.arrangedSubviews[0]
firstView.isHidden = hidden
}
}
func segmentValueChanged(_ sender: UISegmentedControl) {
let segmentSelected = segmentControl.selectedSegmentIndex
switch segmentSelected {
case 0:
animateView(view: mainStackView, toHidden: true)
case 1:
animateView(view: mainStackView, toHidden: true)
case 2:
animateView(view: mainStackView, toHidden: true)
case 3:
animateView(view: mainStackView, toHidden: false)
default:
break
}
}
Проблема, котораяЯ сталкиваюсь с тем, что после изменения сегментов более 10-15 раз вышеуказанный код перестает работать, и представление DropDown пересекается с управлением сегментами, и я не уверен, почему.Любая помощь, чтобы понять эту проблему приветствуется.
Также я уже пробовал 1.setNeedsLayout,2. setNeedsDisplay и3. уменьшение приоритета для ограничения высоты dropDownView до 999 с 1000