На симуляции после загрузки UIView, который содержит 52 UIImageView; требуется всего 3 клика, чтобы начать анимацию. При первых двух щелчках вызывается touchesBegan. я знаю это, потому что NSLog (@ "Just before for loop); отображался на консоли. Однако консоль заявляет, что cardAnimationArray пуст в первые 2 щелчка.
Только после 3-го щелчка анимация начинается. Странно то, что при нажатии на другие карты (UIImageView) после 3-го щелчка анимация начинается с 1-го щелчка (ведет себя как обычно).
Каким-то образом он не входит в цикл for в первые 2 клика! почему это так ???
МОЙ код указан ниже:
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *myPathDocs = [documentsDirectory stringByAppendingPathComponent:@"Cards.plist"];
NSMutableArray *array = [[NSArray alloc] initWithContentsOfFile:myPathDocs];
NSMutableDictionary *dict = [array objectAtIndex:self.tag];
NSString *cardMoved = [dict objectForKey:@"Card"];
NSMutableArray *cardAnimationPreloadingArray = [[NSMutableArray alloc] initWithCapacity:20];
self.cardAnimationArray = [[NSMutableArray alloc] initWithCapacity:20];
[cardAnimationPreloadingArray release];
NSLog(@"Just before for loop");
for (int k; k < 20; k++) {
NSLog(@"counting i: %d",k);
int j = k+1;
cardMovedImageName = [NSString stringWithFormat:@"Animated %@%d.png",cardMoved,j];
NSLog(@"cardMovedImageName %@ at %d",cardMovedImageName, k);
UIImage *cardMovedImage = [UIImage imageNamed:cardMovedImageName];
[cardAnimationArray insertObject:cardMovedImage atIndex:k];
}
CGRect selfFrame = self.frame;
selfFrame.size.width = 110;
selfFrame.size.height = 164;
[self setFrame:selfFrame];
[self.superview bringSubviewToFront:self];
CGPoint pt = [[touches anyObject] locationInView:self.superview];
self.center = pt;
NSLog(@"cardAnimationArray %@", cardAnimationArray);
self.clipsToBounds = NO;
self.animationImages = [NSArray arrayWithArray:cardAnimationArray];
[self setAnimationRepeatCount:1];
self.animationDuration= 0.3;
[self startAnimating];
self.image = [UIImage imageNamed:cardMovedImageName];
}