У меня есть класс TapDetectingImageView, который относится к памяти после использования, потому что я не использую его повторно в своем коде.Теперь я изменяю свой код, чтобы повторно использовать его вместо того, чтобы каждый раз создавать новый.
Цель состоит в том, чтобы настроить этот объект TapDetectingImageView и поместить его в представление.Я сделаю это 8 раз, но с кодом ниже, только последний показывает.Я уверен, что что-то упустил, но что?;)
Представление, содержащее imageViews, является potatoeView.Я добавляю новый TapDetectingImageView через:
[potatoeView addSubview:imageView];
Что не так в этом коде?
for (int i = 0; i <= numberOfPotatoes-1; i++)
{
NSLog(@"potatoesView Generation : %d",i);
NSArray *imgArray = [[NSArray alloc] initWithArray:[p objectAtIndex:i]];
UIImage *img1 = (UIImage *) [imgArray objectAtIndex:0];
UIImage *img2 = (UIImage *) [imgArray objectAtIndex:1];
NSString *imgName = (NSString *) [imgArray objectAtIndex:2];
if (imageView == nil) {
imageView = [[TapDetectingImageView alloc] initWithImage:img1 imageHighlighted:img2];
}else {
[imageView setImage:(UIImage *)img1];
[imageView setImageHighlighted:(UIImage *)img2];
}
[imageView setDelegate:self];
// setup each frame to a default height and width, it will be properly placed when we call "updateScrollList"
CGRect rect = imageView.frame;
rect.size.height = [potatoesSize floatValue] ;
rect.size.width = [potatoesSize floatValue] ;
imageView.frame = rect;
[imageView setName:(NSString *)imgName];
imageView.tag = i+1; // tag our images for later use when we place them in serial fashion
NSValue *val = [potatoesSizeAndPositions objectAtIndex:i];
CGPoint point = [val CGPointValue];
imageView.center = point;
[potatoeView addSubview:imageView];
[imgArray release];
}