Я работаю над веб-сайтом, на котором я хотел бы работать на iPhone, но я хочу, чтобы они могли нажать и удерживать кнопку, и продолжить ее, чтобы запустить событие onclick. Я получил его для работы в других браузерах, но iPhone - единственный, который должен будет удерживать кнопку. Есть ли способ повторить функцию, удерживая нажатой кнопку? Благодарю.JavaScript, iPhone: Повторить действие при нажатии кнопки
1
A
ответ
0
Запуск и остановка таймера на основе touchDown и touchUpInside сообщений, отправленных с кнопки. Предполагается, что кнопка настроена для привязки методов touchDown и touchUpInside к приведенным ниже. Вы также можете установить флаг «BOOL firing = TRUE;» при касании и снятии при касании. Ваш игровой цикл может посмотреть на этот флаг и принять решение.
@interface TouchTest : UIViewController {
NSTimer *touchDownTimer;
}
@property (nonatomic,retain) NSTimer *touchDownTimer;
- (IBAction) touchDown: (id) sender;
- (IBAction) touchUp: (id) sender;
@end
@implementation TouchTest
@synthesize touchDownTimer;
- (void)viewDidLoad {
[super viewDidLoad];
UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(100.00, 100.00, 105.0, 37.0);
[button setTitle:@"Fire at Will" forState:UIControlStateNormal];
[button addTarget:(id)self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown];
[button addTarget:(id)self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
- (IBAction) fireWeapon {
NSLog(@"WeaponFired");
}
- (IBAction) touchDown :(id) sender{
touchDownTimer = [NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval).3 target:self selector:@selector(fireWeapon) userInfo:nil repeats:TRUE];
}
- (IBAction) touchUp :(id) sender {
[touchDownTimer invalidate];
}
@end
+1
Что делать, если touchDown находится внутри кнопки, но прикосновение наружу? – Olie
Мне нравится ваша игра Space Invaders! – GlenCrawford
На самом деле, это именно то, для чего это нужно, мне нужно снимать, просто удерживая кнопку на iPhone. – Doug