0

これが SOF に関する私の最初の投稿です。私は Objective-C の新しいプログラマーです。これが私が扱っている「問題」です

2 つの UIbutton を作成しました。1 つは UIImageView を画面の上部からプルし、もう 1 つはそれを押し戻します。アクション**のコードはありますが、それをifステートメントに関連付ける方法がわかりませんif(ボタン1が押された)、ビューをプルするelse(ボタン2が押された)、ビューを押し戻します。

-(void)viewDidLoad{
{super viewDidLoad]

UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 button1.frame = CGRectMake(200, 0, 90, 30);
[button1 addTarget:self action:@selector(buttonPressed1) forControlEvents:UIControlEventTouchUpInside];
 [self.view addSubview:button1];

UIButton *button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 button2.frame = CGRectMake(400, 0, 90, 30);
[button2 addTarget:self action:@selector(buttonPressed2) forControlEvents:UIControlEventTouchUpInside];
 [self.view addSubview:button2];
}


**

-(void)buttonPressed1 {

 double speed = 1 / round(random() % 100) + 1.0;

 UIImageView *banetteView2 = [[UIImageView alloc] initWithImage:banetteImage];
 banetteView2.frame = CGRectMake(100, -740, 568, 790);
 banetteView2.opaque = NO;
 [self.view addSubview:banetteView2];

 [UIView beginAnimations:nil context:banetteView2];
 [UIView setAnimationDuration: 2*speed ];

 //banetteView2.frame = CGRectMake(100, -1, 568, 790);

 UIImageView *banetteView = [[UIImageView alloc] initWithImage:banetteImage];
 banetteView.frame = CGRectMake(100, -740, 568, 790);
 banetteView.opaque = NO;
 banetteView.hidden = YES;
 [self.view addSubview:banetteView];


 [UIView setAnimationDidStopSelector:@selector(onAnimationComplete:finished:context:)];
 [UIView setAnimationDelegate:self];
 [UIView commitAnimations];


}

- (void)onAnimationComplete:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {

 UIImageView *banetteView2 = context;
 [banetteView2 release];


 double speed = 1 / round(random() % 100) + 1.0;
 banetteView2.frame = CGRectMake(100, 0, 568, 790);
 banetteView2.opaque = NO;
 [self.view addSubview:banetteView2];

 [UIView beginAnimations:nil context:banetteView2];
 [UIView setAnimationDuration: 2*speed ];

 //banetteView2.frame = CGRectMake(100, -740, 568, 790);

}
4

2 に答える 2

3

これが UIButton で機能するかどうかはわかりませんが、通常の Cocoa ボタンの場合は、次のように送信者のパラメーターを追加します。

-(void)buttonPressed1:(id)sender
{
    // And now you can check which button is the sender
    if(sender==button1)
        // Do stuff....
}

そしてもちろん、ボタンアクションを設定するときにセレクターにコロンを追加する必要があります: @selector(buttonPressed1:)

于 2010-10-14T15:00:46.920 に答える
0

このコードを適応させることで見つけました

http://mobile.tutsplus.com/tutorials/iphone/iphone-sdk-learning-about-touch-events-basic-game-animation/

于 2010-10-22T09:08:40.760 に答える