Способ заставить UIButton непрерывно стрелять во время ситуации нажимать-и-содержать?

Если вы можете изменить целевую версию .Net на v4, то вы можете использовать новую функцию OpenBaseKey, например,

RegistryKey registryKey;
if (Environment.Is64BitOperatingSystem == true)
{
    registryKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
}
else
{
    registryKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry32);
}
19
задан RexOnRoids 24 May 2009 в 04:58
поделиться

2 ответа

Не используйте кнопку, используйте мультитач и NSTimer:

Создайте локальный объект NSTimer в своем интерфейсе, а затем используйте его для запуска / отмены таймера

-(void)movePlayer:(id)sender {
   <Code to move player>
}

-(void)touchesBegan:(NSSet*)touches  withEvent:(UIEvent*)event {
    timer = [NSTimer scheduledTimerWithTimeInterval:0.3 target:self selector:@selector(movePlayer:) userInfo:nil repeats:YES];
}

-(void)touchesEnded:(NSSet*)touches  withEvent:(UIEvent*)event {
   if (timer != nil) 
      [timer invalidate];
      timer = nil;
}

-(void)touchesMoved:(NSSet*)touches  withEvent:(UIEvent*)event {
    if (timer != nil) {
       [timer invalidate];
       timer = nil;
    }
}

Таким образом, вы можете повторить событие с заранее определенным интервалом и не нужно полагаться на кнопку, и получить желаемое поведение повторения. Обратите внимание на триггер touchMoved - если они пошевелят пальцем, таймер отменяется, и игрок перестает двигаться.

32
ответ дан 30 November 2019 в 01:58
поделиться

Вы также можете сделать то же, что показано в предыдущем ответе, и по-прежнему использовать UIButton.

Просто запустите таймер на «Touch Down» и остановите таймер на «Touch Up Inside» или "Touch Up Outside".

Лично мне нравится использовать UIButtons, потому что они предлагают некоторые встроенные визуальные улучшения, которые вам не нужно кодировать самостоятельно.

42
ответ дан 30 November 2019 в 01:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: