我试图在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中将其声明为实例变量。