У меня есть два представления, сложенные друг над другом. Допустим, представление B расположено поверх большего представления A. Представление B является круглым и не должно принимать касания за пределами круга, вместо этого большее представление A должно принимать касания.
Я попытался переопределить метод touchesBegan пользовательского распознавателя PanGesture вида B, чтобы проверить, находится ли он внутри кругового пути, а затем вызвать прикосновения, отмененные в распознавателях, как это:
override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!) {
let touch = touches.anyObject() as UITouch
let location = touch.locationInView(self.view)
let isInPath = self.path.containsPoint(location)
if(isInPath){
super.touchesBegan(touches, withEvent: event)
self.rotation = rotationForLocation(location)
}else{
// touch started outside of path so cancel touch
super.cancelsTouchesInView = true
super.touchesCancelled(touches, withEvent: event)
}
}
Это не позволяет виду B принимать касания за пределами кругового пути, но вид A не принимает касания. Любая помощь будет высоко оценена, спасибо.