У меня есть куча UIImageViews в NSMutableDictionary.
Мой метод создания изображения:
for (int i = 1; i <= 5; i++)
{
char a = 'a';
NSString *key = [NSString stringWithFormat:@"%c%d", a, i];
alphabetVowelA = [[UIImageView alloc] initWithFrame:CGRectMake(39, 104, 70, 70)];
[alphabetVowelA setImage:[UIImage imageNamed:@"a.png"]];
alphabetVowelA.tag = i;
[alphabetVowelA setUserInteractionEnabled:YES];
[self addGestureRecognizersToPiece:alphabetVowelA];
[letterDictionary setObject:alphabetVowelA forKey:key]; //Adds the letter a UIImageView to dictionary with key: a1, a2, a3, a4, a5.
[self.view addSubview:alphabetVowelA];
[alphabetVowelA release];
}
Вот мой метод панорамирования.
- (void)panPiece:(UIPanGestureRecognizer *)gestureRecognizer
{
UIView *piece = [gestureRecognizer view];
[self.view bringSubviewToFront:piece];
if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged) {
CGPoint translation = [gestureRecognizer translationInView:[piece superview]];
CGRect startingPointFrame = CGRectMake(245, 428, 31, 20);
[startingPoint setFrame:startingPointFrame];
[piece setCenter:CGPointMake([piece center].x + translation.x, [piece center].y + translation.y)];
[gestureRecognizer setTranslation:CGPointZero inView:[piece superview]];
}
if ([gestureRecognizer state] == UIGestureRecognizerStateEnded)
{
pannedPieces = [[NSMutableArray alloc] init];
[pannedPieces addObject:piece];
NSEnumerator *enumerator = [pannedPieces objectEnumerator];
id element;
NSUInteger arrayCount = [pannedPieces count];
while(element = [enumerator nextObject])
{
NSUInteger i = [pannedPieces indexOfObject:element];
NSLog(@"%@ \n @index %i \n Array Count: %i",element, i, arrayCount);
}
}
Я пытаюсь добавить представления, которые были панорамированы и отброшены, в NSMutableArray, чтобы я мог работать с этими представлениями независимо от всех других моих представлений. Делая это с моим кодом выше, кажется, что каждый фрагмент, который панорамируется, не добавляет себя в конец массива, он только помещает его в индекс 0 каждый раз. Так что мой @index печатает 0, а Array Count печатает 1 независимо от того, сколько просмотров я панорамировал.
Вместо того, чтобы просто добавить «кусок», который был панорамирован, как я могу получить ключ словаря панорамируемого UIImageView, чтобы я мог добавить его в массив по ключу?
Надеюсь, этот вопрос имеет смысл.