0

ユーザーが特定のボタンをクリックしたときに画像を移動するには、アプリが必要です。これは完全に機能します:

ViewController.m

#import "ndpViewController.h"

@interface ndpViewController ()

@property (nonatomic, retain) IBOutlet UIImageView *image;

-(void)movetheball;

@end


@implementation ndpViewController

@synthesize image;
int ballx, bally;


-(void)movetheball {
[UIView beginAnimations: @"MovingTheBallAround" context: nil];
[UIView setAnimationDelegate: self];
[UIView setAnimationDuration: 1.0];
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];

image.frame =  CGRectMake(ballx,bally,image.frame.size.width,image.frame.size.height);

[UIView commitAnimations];
}

- (void)viewDidLoad {
   }


- (IBAction)calculatePush:(id)sender {
    ballx = 600; 
    bally = 800; 
    [self movetheball];
}
@end

しかし、アプリが (ユーザーがボタンをクリックしたとき) 何か他のことをしなければならなくなるとすぐに、ラベルにテキストを追加するなど、次のようにします。

 _lizfwLabel.text=[NSString stringWithFormat:@"%.2f",lizfw];

その後、アプリはボタンを 2 回クリックしたときにのみ画像を移動します。

なぜこれが起こっているのですか?ありがとうございました!

4

1 に答える 1

0

UIViewiOS でをアニメーション化するには、別の方法を使用してみてください。Apple[UIView animate...]は古いスタイルではなく使用するようアドバイスしています[UIView begin/commitAnimations];

あなたの場合、movetheballメソッドコードをそのコードに置き換える必要があります:

[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    CGRect frame = image.frame;
    frame.origin.x = ballx;
    frame.origin.y = bally;
    image.frame = frame;
} completion:nil];
于 2012-10-07T22:02:41.950 に答える