hitTest
8 мая 2017, 0:40
Задача
У вас есть UIView c N количеством кнопок внутри
и вот прикол, высота этой вьюхи 1 пиксель,
а теперь вопрос как вы обработаете Tap'ы по каждой из кнопок ?
решение 1
//MARK: hitTest override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { if buttonOne.frame.contains(point){ return buttonOne } else if buttonOne.frame.contains(point){ return buttonTwo } else if buttonOne.frame.contains(point){ return buttonThree } else { return nil } }
решение 2 (более приятное)
//MARK: hitTest override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { return getButton(point, buttons: [buttonOne, buttonTwo, buttonThree]) } func getButton(_ point:CGPoint, buttons: [UIView] ) -> UIView? { for button in buttons { if (button.frame.contains(point)){ return button } } return nil }
Твитнуть
Поделиться
Поделиться
Популярное