У меня есть несколько UIButtons, которые перемещаются в разные места, заданные массивом с именем totalSmallButtonLocations. Итак, я прохожу через availableLocations, NSMutableArray, назначая разные CGPoints и удаляя эти точки из availableLocations. Как только это будет сделано, появится анимация UIView для перемещения кнопок в новые места.
В настоящее время это работает, но, как вы можете видеть ниже, это очень долго (и в реальном проекте есть гораздо больше кнопок и мест):
int randomNumber;
NSValue *val;
CGPoint a, b, c;
NSMutableArray *availableLocations;
availableLocations = [NSMutableArray arrayWithArray:totalSmallButtonLocations];
randomNumber = arc4random_uniform(3);
val = [availableLocations objectAtIndex:randomNumber];
a = [val CGPointValue];
[availableLocations removeObjectAtIndex:randomNumber];
randomNumber = arc4random_uniform(13);
val = [availableLocations objectAtIndex:randomNumber];
b = [val CGPointValue];
[availableLocations removeObjectAtIndex:randomNumber];
randomNumber = arc4random_uniform(12);
val = [availableLocations objectAtIndex:randomNumber];
c = [val CGPointValue];
[UIView animateWithDuration:0.5 animations:^{
button1.center = a;
button2.center = b;
button3.center = c;
Итак, я пытаюсь создать цикл, но аспект CGPoint вызывает некоторые проблемы. Я думаю, что мой цикл в порядке, но я не знаю, как назначить его во время раздела анимации, и он выдает ошибку:
«Назначение «CGPoint» (также известное как «struct CGPoint») из несовместимого идентификатора типа»:
int randomNumber;
NSValue *val;
CGPoint a;
NSMutableArray *availableLocations;
availableLocations = [NSMutableArray arrayWithArray:totalSmallButtonLocations];
NSMutableArray *points = [NSMutableArray array];
for(int looper = 14; looper > 0; looper--)
{
randomNumber = arc4random_uniform(looper);
val = [availableLocations objectAtIndex:randomNumber];
a = [val CGPointValue];
[points addObject:[ NSValue valueWithCGPoint:a]];
}
[UIView animateWithDuration:0.5 animations:^{
button1.center = [points objectAtIndex:1];
button2.center = [points objectAtIndex:2];
button3.center = [points objectAtIndex:3];
xcode
. Удаленный. - person   schedule 12.12.2012