-1

我正在尝试回忆我(void)viewDidLoad在另一个块中加载的图像,(void)moveObject. 但是,因为我正在处理两个不同的块,我显然无法回忆起图像。有什么方法我应该重新排列代码以使其工作?

- (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 创建一个实例变量,或者如果您还需要 getter 和 setter,则创建一个属性。

以下是仅使用实例变量的方法:

.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 回答