创建控制板

时间:2014-02-05 13:30:26

标签: objective-c ios7

我正在尝试为图像视图编码控制器以使用按钮移动。

里面的按钮代码:

-(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];

}

1 个答案:

答案 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