Ссылка на видео урок.
В этом уроке рассказывается как работать с UITouch - касания пользователя экрана.
Класс UIResponder - родитель UIView имеет методы для обработки прикосновений экрана:
Начало касания
Чтобы распечатать все точки касания в координатах главной Вью в этом уроке использован такой пример:
}
Метод locationInView переводит UITouch в CGPoint в координатах self.view.
Так же рассматривается метод hitTest позволяющий вернуть UIView самой глубокой вложенности (в массивах subview) на которую указывает точка :
Исходники к уроку 22.
Домашнее задание к уроку 22:
Уровень супермен (остальных уровней не будет)
1. Создайте шахматное поле (8х8), используйте черные сабвьюхи
2. Добавьте балые и красные шашки на черные клетки (используйте начальное расположение в шашках)
3. Реализуйте механизм драг'н'дроп подобно тому, что я сделал в примере, но с условиями:
4. Шашки должны ставать в центр черных клеток.
5. Даже если я отпустил шашку над центром белой клетки - она должна переместиться в центр ближайшей к отпусканию черной клетки.
6. Шашки не могут становиться друг на друга
7. Шашки не могут быть поставлены за пределы поля.
Выполнил домашнее задание к уроку 22:
Исходные коды к домашнему заданию 22.
В этом уроке рассказывается как работать с UITouch - касания пользователя экрана.
Класс UIResponder - родитель UIView имеет методы для обработки прикосновений экрана:
Начало касания
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
Движение не отрывая пальца по экрану
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
Окончание касания.
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
Касание прервано событием или выдвижением панели на экране.
- (void)touchesCancelled:(nullable NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
Чтобы приложение поддерживало множественные касания (двумя и более пальцами), необходимо выполнить:
self.view.multipleTouchEnabled=YES;
-(void) logTouches:(NSSet*) touches withMethod : (NSString*) methodName{
NSMutableString *string=[NSMutableString stringWithString:methodName];
for (UITouch * touch in touches){
CGPoint point=[touch locationInView:self.view];
[string appendFormat:@" %@",NSStringFromCGPoint(point)];
}
NSLog(@"%@",string);
Метод locationInView переводит UITouch в CGPoint в координатах self.view.
Так же рассматривается метод hitTest позволяющий вернуть UIView самой глубокой вложенности (в массивах subview) на которую указывает точка :
UIView * view=[self.view hitTest:pointOnMainView withEvent:event];
Исходники к уроку 22.
Домашнее задание к уроку 22:
Уровень супермен (остальных уровней не будет)
1. Создайте шахматное поле (8х8), используйте черные сабвьюхи
2. Добавьте балые и красные шашки на черные клетки (используйте начальное расположение в шашках)
3. Реализуйте механизм драг'н'дроп подобно тому, что я сделал в примере, но с условиями:
4. Шашки должны ставать в центр черных клеток.
5. Даже если я отпустил шашку над центром белой клетки - она должна переместиться в центр ближайшей к отпусканию черной клетки.
6. Шашки не могут становиться друг на друга
7. Шашки не могут быть поставлены за пределы поля.
Выполнил домашнее задание к уроку 22:
Комментариев нет:
Отправить комментарий