我试图在touchesBegan方法中创建一个名为ImageView的UIImageView,然后可以在touchesMoved中将其移至新位置。目前,我在touchesMoved中收到“未声明”错误,在其中我为ImageView设置了新位置。

如何在这两种方法之间将ImageView保留在内存中?

编辑:我无法在@interface中声明ImageView,因为每次触摸特定点时都需要创建图像。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    ...
    UIImageView *theImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
    theImageView.frame = CGRectMake(263, 228, 193, 300);
    [theImageView retain];
    ...
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    ...
    theImageView.frame = CGRectMake(300, 300, 193, 300);
    ...
}

最佳答案

您已经在方法/函数中声明了变量,这使它成为局部变量(即仅存在于该函数内部的变量)。要使其在其他方法中可用,您必须在类的@interface中将其声明为实例变量。

07-24 18:29