Кнопка TouchDown и событие CPBPressureTouchGestureRecognizer - PullRequest
0 голосов
/ 23 февраля 2012

мой код:

-(void)viewDidLoad {
[super viewDidLoad];

CPBPressureTouchGestureRecognizer* recognizer = [[CPBPressureTouchGestureRecognizer alloc] initWithTarget:self action:@selector(A_button:)];
[A_button addGestureRecognizer: recognizer];
[recognizer release];


[P2_button addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];

[P2_button addTarget:self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown];
}

- (void) A_button: (CPBPressureTouchGestureRecognizer*) recognizer {
[self.presLabel setText:[NSString stringWithFormat:@"%f",recognizer.pressure]];
}

и, наконец,

-(IBAction)touchUp :(id)sender{
[myTimer invalidate];
myTimer = nil;
NSLog(@"up");
}

-(IBAction)touchDown :(id)sender{

myTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 
                                           target:self
                                         selector:@selector(A_button:) 
                                         userInfo:nil 
                                          repeats:YES]; 


}

, но не работают, если в селекторе таймера я пишу @selector (A_button), ничего не делаю, и если я пишу@selector (A_button :) ошибка возврата:

2012-02-22 22: 38: 24.837 TestPres [19686: 707] - [__NSCFTimer давление]: нераспознанный селектор отправлен в экземпляр 0x143570 2012-02-22 22: 38: 24.847 TestPres [19686: 707] * Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [__ NSCFTimer давление]: нераспознанный селектор отправлен в экземпляр 0x143570'

Где проблема?Как отображать значение давления даже 0,1 секунды, когда я нажимаю кнопку m вниз?

Спасибо

1 Ответ

0 голосов
/ 23 февраля 2012

Ваш метод A_button: ожидает, что CPBPressureTouchGestureRecognizer будет передан в качестве аргумента.Когда ваш таймер срабатывает, он вызывает этот метод, но вместо этого передает объект NSTimer.

Кроме того, способ работы распознавателя жестов давления очень похож на способ распознавания жестов касания.Даже если вы сохранили ссылку на него, он не будет постоянно следить за приложенным давлением.Он только приближает давление, когда кран распознан.

...