У меня есть UIViewController. И UIView внутри Как обнаружить прикосновения самостоятельно?
У меня есть UIViewController. И 3 UIView внутри Как обнаружить прикосновения самостоятельно.
У меня есть 3 класса, и добавил объекты в UIViewController
И есть этот метод в каждом классе, мне нужно коснуться объекта (UIView) отвечает на событие независимо
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
}
пример:
view1 NSLog (@ "I Touched View 1");
view2 NSLog (@ "I Touched View 2");
view3 NSLog (@ "I Touched View 3");
Спасибо!!
1 ответ
Если все три представления являются потомками представления вашего viewController, вы можете использовать следующий фрагмент кода
for (UITouch *t in touches) {
CGPoint p = [t locationInView:self.view];
UIView *v = [self.view hitTest:p withEvent:event];
NSLog(@"touched view %@", v);
}
РЕДАКТИРОВАТЬ
Хорошо, я предполагал, что у вас была только одна точка входа (в UIViewController
) для сенсорного определения ваших подпредставлений; Если, как вы сказали, у вас есть класс для каждого подпредставления, вы уже решили свою проблему. Вам не нужно ничего делать, кроме как положить свой NSLog(@"touched..")
код внутри каждого touchBegan:withEvent:
метод.
Например
@implementation FirstSubview
.
.
-( void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"I touched View 1");
}
.
.
@end
Примечание: так как UIViewController
также UIResponder
(т.е. наследуется от UIResponder
) вы также можете использовать первое решение, которое я разместил.