У меня есть UIScrollView, который содержит любое количество эскизов, которые должны обнаружить событие касания, выполнить 3D-преобразование самостоятельно и вызвать метод делегата.Обнаружение касаний для слоев в UIScrollView
Единственная проблема, с которой я не могу справиться, - это определить, какой подслой используется. Я устанавливаю layer.name в число индексов, и подкласс UIScrollView получает событие касания. Теперь последнее оставшееся препятствие - это как сделать hitTest на подслоях, чтобы получить свойство name и voila!
Я думал о подклассе UIView как контейнере CALayer и таким образом захватывал событие касания. Но я надеюсь, что может быть более экономичный способ определения затронутого подслоя.
Код я пытался (в моем UIScrollView подкласса):
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] == 1) {
for (UITouch *touch in touches) {
CGPoint point = [touch locationInView:[touch view]];
CALayer *alayer = [self.layer hitTest:point];
if (alayer) NSLog(@"layer %@ touched",alayer.name);
else NSLog(@"layer not detected");
}
}
}
Я получаю две ошибки компиляции. сначала предупреждение: метод hitTest не найден. а ошибка «запрос для имени участника» - это не структура или объединение ».
Оле, я думал о том же решении. Тем не менее, я получаю две ошибки компиляции с моим кодом, который я разместил выше. – cameron
Вы, вероятно, не '#import'. –
Вы правы, сэр! :Икс – cameron