0

iPadの画面に垂直方向に落ちるようにUIButtonを設定しています。次のようなコードを設定しています。

CABasicAnimation *theAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
theAnimation.repeatCount=1e100;
theAnimation.autoreverses=NO;
for (UIButton *vbtn in flakesArray) {
    //vbtn.userInteractionEnabled =YES;
    [vbtn addTarget:self 
             action:@selector(aMethodTesting:)
   forControlEvents:UIControlEventTouchUpInside];
    CGPoint p = vbtn.center;
     startypos = p.y;
    NSLog(@"%f",startypos);
     endypos = self.view.frame.size.height;
    p.y = endypos;
    NSLog(@"%f",endypos);
    vbtn.center = p;
    //float timeInterval = ((Float32)(animationDurationMax-animationDurationMin)*(Float32)random()/(Float32)RAND_MAX);
    theAnimation.duration=200;
    theAnimation.fromValue=[NSNumber numberWithFloat:-startypos];
    [vbtn.layer addAnimation:theAnimation forKey:@"transform.translation.y"];
    [self.view addSubview:vbtn];
    [self.view bringSubviewToFront:vbtn]; 
}

しかし、このコードでは、UIButtonがメソッドaMethodTestingを呼び出すことはできません:ヘルプ??

4

2 に答える 2

0

これはあなたを助けるかもしれません.これはあなたのコードを編集しています.これは単一のボタンです. これで複数枚使えます。

CABasicAnimation *theAnimation = [CABasicAnimation    animationWithKeyPath:@"transform.translation.y"];

theAnimation.repeatCount=1e100;
theAnimation.autoreverses=NO;
float startypos = 1.0f;
float endypos=480.0f;
float animationDurationMax = 500.0f;
float animationDurationMin = 50.0f;
UIButton *vbtn = (UIButton *)sender;
//for ( UIButton *vbtn in flakesArray)
{
    vbtn.userInteractionEnabled =YES;
    [vbtn addTarget:self action:@selector(aMethodTesting:) forControlEvents:UIControlEventTouchUpInside];
    CGPoint p = vbtn.center;
    startypos = p.y;
    NSLog(@"%f",startypos);
    endypos = self.view.frame.size.height;
    p.y = endypos;
    NSLog(@"%f",endypos);
    vbtn.center = p;
    float timeInterval = (animationDurationMax-animationDurationMin);//random()/RAND_MAX);
    theAnimation.duration=2;
    theAnimation.fromValue=[NSNumber numberWithFloat:-startypos];
    [vbtn.layer addAnimation:theAnimation forKey:@"transform.translation.y"];
    [self.view addSubview:vbtn];
    [self.view bringSubviewToFront:vbtn];
}
于 2012-09-29T13:59:42.203 に答える
0
  1. あなたの aMethodTesting は本当に送信者を引数として取りますか? そうでない場合は、次を削除します。
  2. UIButton *vbtn である必要があります (ポインタです)

コードをコードとしてフォーマットしてください。今ではまったく判読できません。

于 2012-09-22T17:33:22.883 に答える