Переопределяем hitTest у кастомной кнопки на UITabBar
- 18 октября, 2022
- 3:33 пп
- Нет комментариев
Всем привет! Часто необходимо добавить кастомную кнопку в таббар, но тут появляется проблема: если какая-то часть frame кнопки выходит за границы frame своего superview, то в этой части кнопки перестает работать touch-event, а вместо этого срабатывает на superview.
Всем привет! Часто необходимо добавить кастомную кнопку в таббар, но тут появляется проблема: если какая-то часть frame кнопки выходит за границы frame своего superview, то в этой части кнопки перестает работать touch-event, а вместо этого срабатывает на superview. Пример: если кнопка расположена поверх таблицы, то при нажатии на кнопку будет выделяться ячейка таблицы под этой кнопкой.
Для решения этой проблемы надо переопределять hitTest
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
if clipsToBounds || isHidden || alpha == 0 {
return nil
}
for subView in subviews.reversed() {
let subPoint = subView.convert(point, from: self)
if let result = subView.hitTest(subPoint, with: event) {
return result
}
}
return nil
}