-1

(void)viewDidLoad別のブロックに読み込んだ画像を思い出そうとしています(void)moveObject。しかし、私は2つの異なるブロックを扱っているので、どうやら画像を思い出せないようです。コードを再配置して機能させる方法はありますか?

- (void)viewDidLoad {
    CGRect myImageRect = CGRectMake(200.0f, 350.0f, 52.0f, 100.0f);
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
    [myImage setImage:[UIImage imageNamed:@"flake.png"]];
    myImage.opaque = YES;
    [self.view addSubview:myImage];

    moveObjectTimer = [NSTimer scheduledTimerWithTimeInterval:0.001 target:self selector:@selector(moveObject) userInfo:nil repeats:YES];
}

-(void) moveObject { 
    myImage.center = CGPointMake(myImage.center.x, myImage.center.y +1);
}
4

1 に答える 1

0

myImageのインスタンス変数を作成するか、ゲッターとセッターも必要な場合はプロパティを作成します。

インスタンス変数だけを使用する方法は次のとおりです。

.m

@implementation MyClass {

    UIImageView *_myImage;

}

- (void)viewDidLoad
{
    CGRect myImageRect = CGRectMake(200.0f, 350.0f, 52.0f, 100.0f);
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
    [myImage setImage:[UIImage imageNamed:@"flake.png"]];
    myImage.opaque = YES;
    [self.view addSubview:myImage];
    _myImage = myImage;
}

-(void) moveObject { 
    _myImage.center = CGPointMake(_myImage.center.x, _myImage.center.y +1);
于 2012-11-27T00:20:27.930 に答える