У меня есть UIScrollView, который содержит любое количество миниатюр, которые должны обнаружить событие касания, выполнить трехмерное преобразование для себя и вызвать метод делегата.
Единственная проблема, которую я не могу преодолеть, - это определить, какой подуровень являетсяпрослушивается.Я устанавливаю layer.name в число индексов, и подкласс UIScrollView действительно получает событие касания.Теперь последнее оставшееся препятствие - как выполнить hitTest для подслоев, чтобы получить свойство name и вуаля!
Я думал о создании подкласса 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 не найден.и ошибка "запрос на член 'name' не является структурой или объединением".