Я создаю автомобиль с дистанционным управлением, используя мой iPhone в качестве контроллера.Функция запуска при нажатии UIButton
Я построил простую кнопку, как показано ниже:
-(void)moveArduinoForward
{
UInt8 buf[3] = {0x01, 0x00, 0x00};
buf[1] = 50;
buf[2] = (int)num >> 8;
NSData *data = [[NSData alloc] initWithBytes:buf length:3];
[self.bleShield write:data];
}
-(void)stopArduino
{
UInt8 buf[3] = {0x05, 0x00, 0x00};
buf[1] = 50;
buf[2] = (int)num >> 8;
NSData *data = [[NSData alloc] initWithBytes:buf length:3];
[self.bleShield write:data];
}
self.moveForwardButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.moveForwardButton.frame = CGRectMake(430.0, 175.0, 117.0, 133.0);
[self.moveForwardButton setImage:[UIImage imageNamed:@"fwdUp.png"] forState:UIControlStateNormal];
[self.moveForwardButton setImage:[UIImage imageNamed:@"fwdDown.png"] forState:UIControlStateHighlighted];
[self.moveForwardButton addTarget:self action:@selector(moveArduinoForward) forControlEvents:UIControlEventTouchDown];
[self.moveForwardButton addTarget:self action:@selector(stopArduino) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];
[self.view addSubview:self.moveForwardButton];
Это в настоящее время не работает, как хотелось бы. Он только запускает событие moveArduinoForward один раз, когда палец касается кнопки. Я бы хотел, чтобы он постоянно стрелял. Я пробовал несколько способов сделать это безрезультатно, какие-то мысли?
Не уверен, что это хорошая идея, но вы пробовали использовать повторяющуюся '' NSTimer' на touchBegan', а затем на 'touchEnded' недействительным таймер? В этом случае таймер должен вызвать метод обратного вызова кнопки, который выполняет эту работу. – Zhang