2009-07-10 12 views
0

問題があります。 2つのUIButtonsとUIImageViewを使って、私のビューです。ボタンが押されたときに画像を移動したいときは、触れていないときにUIImageを停止したい。しかし、私はこれがどのように機能するのか分かりません。多分あなたは私を助けることができます。ここに私のコードは次のとおりです。UIButtonを保持+オブジェクトを移動

- (void)viewDidLoad 
{ 
    currentPositionx = 150.0; 
    currentPositiony = 150.0; 
    currentSizex = 147.0; 
    currentSizey = 146.0; 
    currentSpeed = 0.70; 


    contentView = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    [contentView setImage:[UIImage imageNamed:@"BlackScreen.png"]]; 
    [contentView setUserInteractionEnabled:YES]; 
    [contentView setMultipleTouchEnabled:YES]; 
    self.view = contentView; 
    [contentView release]; 


    // create the view that will execute our animation 
    currentPlayer = [[UIImageView alloc] initWithFrame:CGRectMake(currentPositionx, currentPositiony, currentSizex, currentSizey)]; 

    // load all the frames of our animation 
    currentPlayer.animationImages = [NSArray arrayWithObjects: 
            [UIImage imageNamed:@"RunnerRED_0.png"], 
            Nil]; 


    currentPlayer.animationDuration = currentSpeed; 
    currentPlayer.animationRepeatCount = 0; 
    [currentPlayer startAnimating]; 
    [self.view addSubview:currentPlayer]; 
    [currentPlayer release];  

    UIButton *GoLeftButton = [[UIButton buttonWithType:UIButtonTypeCustom] initWithFrame:CGRectMake(20, 263, 64, 64)]; 
    [GoLeftButton addTarget:self action:@selector(GoLeft:) forControlEvents:UIControlEventTouchUpInside]; 
    [GoLeftButton setBackgroundImage:[UIImage imageNamed:@"Arrow Left RED.png"] forState:UIControlStateNormal]; 
    [self.view addSubview:GoLeftButton]; 

    UIButton *GoRightButton = [[UIButton buttonWithType:UIButtonTypeCustom] initWithFrame:CGRectMake(100, 263, 64, 64)]; 
    [GoRightButton addTarget:self action:@selector(GoRight:) forControlEvents:UIControlEventTouchUpInside]; 
    [GoRightButton setBackgroundImage:[UIImage imageNamed:@"Arrow Right RED.png"] forState:UIControlStateNormal]; 
    [self.view addSubview:GoRightButton]; 

} 

-(void)GoLeft:(id)sender 
{ 

    CGRect frame = currentPlayer.frame; 
    frame.origin.x = frame.origin.x - 10; 
    currentPlayer.frame = frame; 
    currentPlayer.transform = CGAffineTransformIdentity; 
    currentPlayer.transform = CGAffineTransformMakeScale(-1.0, 1.0); 
} 


-(void)GoRight:(id)sender 
{ 
    CGRect frame = currentPlayer.frame; 
    frame.origin.x = frame.origin.x + 10; 
    currentPlayer.frame = frame; 
    currentPlayer.transform = CGAffineTransformIdentity; 
    currentPlayer.transform = CGAffineTransformMakeScale(1.0, 1.0); 
} 

@end 

私はあなたが私に私はあなたがUIControlEventTouchDownUIControlEventTouchUpInsideUIControlEventTouchUpOutsideイベントを利用する必要があると考えてい

THX

答えて

0

を助けることができると思います。

タッチダウンで、UIImageの移動を開始します。タッチアップしたら、移動をやめてください。

EDIT:動画続行するには、UIKitアニメーション(UIViewを介してアクセス可能)を見てみたいことがあります。 UIControlEventTouchDownRepeatイベントもありますが、私は個人的に使っていないので、探しているイベントかどうかわかりません。

+0

これはうまくいきますが、UIButtonを押したままにすると、UIImageは1ステップだけ左に移動しますが、イメージを永久に移動したかったのです。 –

+0

答えを更新しました。 –

関連する問題