Я просмотрел подобные посты о том, что распознаватели жестов не работают, и я попробовал все их решения безрезультатно. В прошлом я создал десятки распознавателей жестов, и уже несколько часов я не могу заставить его работать, и я готов утопиться.
Вот мои 3 горизонтальных стека, которые у меня есть в представление: https://imgur.com/a/HKIaNRV
Я добавил распознаватель жестов в горизонтальный стек следующим образом:
menuView.addSubview(Hstack1)
Hstack1.anchor(top: nil, left: menuView.leftAnchor, bottom: nil, right: menuView.rightAnchor, paddingTop: 0, paddingLeft: 15, paddingBottom: 0, paddingRight: 15, width: menuView.frame.width, height: 30)
Hstack1.topAnchor.constraint(equalTo: menuView.topAnchor, constant: 100).isActive = true
var tap = UITapGestureRecognizer(target: self, action: #selector(openProfileController))
Hstack1.addGestureRecognizer(tap)
Моя функция, которая должна запускаться:
@objc func openProfileController() {
navigationController?.pushViewController(ProfileController(), animated: true)
}
Я даже пытался сделать «Профиль» кнопкой с методом действия, но это не сработало. Я также попытался добавить жест ко всему черному представлению меню, но ничего не сработало.
Редактировать: Я часами играл с видом и узнал, что у него есть что-то для сделать с рамкой представления меню. Чтобы получить слайд-меню, я перемещаю свой контроллер вида в анимации, подобной этой:
self.view.frame.origin.x = self.view.frame.origin.x + 250
Рамка меню изначально:
menuView.frame = CGRect(x: -250,y: 0, width: 250, height: view.frame.height)
Но так как это подпредставление Контроллер вида сдвигается также на 250 вправо. Визуально это именно то, что я хочу. Тем не менее, кажется, что кадр menuView не обновляется во время этой анимации и продолжает оставаться в -250, 0.
Есть идеи, как это исправить?