Как видите, у меня проблемы с формулировкой вопроса.Позвольте мне попытаться объяснить:
Я использую панель поиска в моем быстром приложении ios.Чтобы получить желаемый эффект анимации, я помещаю его в вертикальный вид стека и затем анимирую его свойство isHidden
.Таким образом, панель поиска выталкивает другие дочерние элементы стекового представления, когда оно оживляет, или вытягивает их, когда оно оживляет.Все идет нормально.
Я заметил поведение, которое мне кажется странным.Может быть ошибка или я не понимаю, как все работает.В основном, если я вызываю метод скрытия панели поиска x раз подряд, мне нужно вызвать строку поиска, показывающую метод x раз, прежде чем он отобразится.Я бы хотел сделать всего один вызов, чтобы показать панель поиска, независимо от того, сколько раз я вызывал скрытый метод.Проблема не существует наоборот: если я вызываю строку поиска, показывающую код x раз, мне нужно только вызвать метод скрытия, чтобы он исчез.Этого не произойдет, если я установлю isHidden
без его анимации ...
Вот пример кода и видео проблемы.Буду признателен, если кто-нибудь поможет мне понять это поведение.
class ViewController: UIViewController {
@IBOutlet weak var searchBar: UISearchBar! {
didSet {
searchBar.isHidden = true
}
}
@IBAction func showAction(_ sender: UIButton) {
expandSearch()
}
@IBAction func hideAction(_ sender: UIButton) {
collapseSearch()
}
private func expandSearch() {
UIView.animate(withDuration: 0.3){
self.searchBar.isHidden = false
}
}
private func collapseSearch() {
UIView.animate(withDuration: 0.3){
self.searchBar.isHidden = true
}
searchBar.resignFirstResponder()
}
}
![video](https://i.stack.imgur.com/N99QZ.gif)