moovix

Переопределяем hitTest у кастомной кнопки на UITabBar

Moovix » Блог » Переопределяем hitTest у кастомной кнопки на UITabBar
Всем привет! Часто необходимо добавить кастомную кнопку в таббар, но тут появляется проблема: если какая-то часть 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
    }
				
			
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Moovix » Блог » Переопределяем hitTest у кастомной кнопки на UITabBar

Есть вопрос? мы онлайн

Есть проект? Заполните бриф.

top