touchesEnded вызывается, когда любая часть экрана постукивается двумя пальцами одновременно
Я нашел это странное поведение с сенсорным событием. Представление таргетинга даже не выделено, но touchShended будет вызываться при нажатии любой части экрана двумя пальцами, а не 1, должно быть 2..., затем он пропускает touchesBegan, вызывает touchesEnded. Я даже проверил, установлено ли для userInteraction целевого представления значение YES, но нет, для него установлено значение NO, очевидно, потому что по умолчанию оно NO, но оно все равно не выделено.
Все это не происходит, когда целевое представление уже выделено и расположено и т. Д.
Кто-нибудь испытывал это?? Почему это происходит, и я должен выделить свойство для предотвращения случайного вызова его сенсорных событий как сумасшедших? Кроме того, почему это странное поведение требует 2 пальца одновременно вместо одного нажатия... это не важно, но мне просто очень любопытно.
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [[event allTouches] anyObject];
if (touch.view == self.buttonStartButton) {
NSInteger levelUp = [self.levelModel checkForLevelUp];
if (levelUp == 0) {
[self byeGameContainer];
}
else {
[self.delegate levelingUp];
}
}}
1 ответ
Таким образом, попытка выделить цель и установить ее рамку за пределы экрана не сработала. TouchesBegan и touchesEnded будут по-прежнему вызываться при нажатии любой части экрана. Я даже установил его userInteractionEnabled = NO, но сенсорные события все равно будут вызываться.
Закончилось этим, и это работает. Проверяя, выделено ли целевое свойство или нет, сенсорные события, наконец, не вызываются, когда они не должны / не должны.
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch * touch = [[событие allTouches] anyObject];
if (touch.view == self.buttonStartButton && self.buttonStartButton! = nil) {
NSInteger levelUp = [self.levelModel checkForLevelUp];
if (levelUp == 0) {
[self byeGameContainer];
}
else {
[self.delegate levelingUp];
}
}}