我正在尝试为图像视图编码控制器以使用按钮移动。
里面的按钮代码:
-(IBAction)upButton:(id)sender{
mainChac.center = CGPointMake(mainChac.center.x, mainChac.center.y - 5);
}
代码工作正常,但是我必须反复点击才能继续向上移动,我想知道调用哪种方法,移动它,同时按住向上按钮。
编辑:
-(void)touchDownRepeat{
mainChac.center = CGPointMake(mainChac.center.x, mainChac.center.y - 5);
}
-(IBAction)upButton:(id)sender{
[upButton addTarget:self action:@selector(touchDownRepeat) forControlEvents:UIControlEventTouchDownRepeat];
}
编辑2:解决方案
-(void)moveUp{
mainChac.center = CGPointMake(mainChac.center.x, mainChac.center.y - 5);
}
- (void)holdDown
{
NSLog(@"hold Down");
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveUp) userInfo:nil repeats:YES];
}
- (void)holdRelease
{
NSLog(@"hold release");
[timer invalidate];
}
-(IBAction)upButton:(id)sender{
[upButton addTarget:self action:@selector(holdDown) forControlEvents:UIControlEventTouchDown];
[upButton addTarget:self action:@selector(holdRelease) forControlEvents:UIControlEventTouchUpInside];
}
答案 0 :(得分:1)
修改强>
你需要有2个事件,一个用于按下按钮,另一个用于释放按钮时:
[aButton addTarget:self action:@selector(holdDown) forControlEvents:UIControlEventTouchDown];
[aButton addTarget:self action:@selector(holdRelease) forControlEvents:UIControlEventTouchUpInside];
- (void)holdDown
{
NSLog(@"hold Down");
}
- (void)holdRelease
{
NSLog(@"hold release");
}
让你的按住功能开始循环,你的holdRelease停止循环。
修改-2:强>
实现此循环的一种简单方法(但可能不是最好的方法)是在hold下使用NSTImer scheduledTimerWithTimeInterval
并在release方法中使其无效。
所有这些东西都已经完成,请尝试谷歌搜索这些东西。这是一个stackoverlfow问题,带有一个例子:ios scheduledTimerWithTimeInterval for amount of time