У меня есть TransparentUIView поверх RedOrGreenUIView. TransparentUIView имеет прикрепленный к нему UILongPressGestureRecognizer. После того, как пользователь начинает длинный прикосновение к ней, я проверить .Changed статус этого LongPressGesture и выполнить ниже Трассировка:Swift: hitTest для UIView под другим UIView
var p:CGPoint = rec.locationInView(self.view)
var selectedView = view.hitTest(p, withEvent: nil)
if selectedView != nil {
if selectedView == TransparentUIView {
println("TransparentUIView is being touched")
}
}
я TransparentView, как selectedView штрафа. Однако мне нужно иметь возможность одновременно совершать хиты в RedOrGreenUIView, что находится под TransparentUIView. Я не могу придумать это. Пожалуйста помоги.
В качестве альтернативы, я мог бы предложить использовать метод swizzling, чтобы получить штрихи и размещать их каждый раз е, но пойдем, пока мы не убежим, не так ли? :) –
Мне нравится второй вариант. Будете ли вы любезны рассказать мне, как передать объект UITouch другому виду. Вся помощь, которую я googled, находится в ObjC, который я не понимаю. – Kashif
@TPos В ваших методах реализации UIView коснетсяBegan, touchsMoved и touchesEnded. Это даст вам объект UITouch в этом представлении. Как только вы их получите, вы можете использовать их для своего hitTest или отправить эти объекты под представлениями. Для этого вы пишете функцию в представлении снизу и передаете объект UITouch в качестве параметра. –