Я всегда использую индекс массива, потому что многие мое приложение требуют чего-то как "изображение миниатюр дисплея". Таким образом, я записал что-то вроде этого:
some_vector[0].left=0;
some_vector[0].top =0;<br>
for (int i = 1; i < some_vector.size(); i++)
{
some_vector[i].left = some_vector[i-1].width + some_vector[i-1].left;
if(i % 6 ==0)
{
some_vector[i].top = some_vector[i].top.height + some_vector[i].top;
some_vector[i].left = 0;
}
}
Установили ли вы для свойства removeOnCompletion анимации вращения значение NO, например,
rota.removedOnCompletion = NO;
Это должно оставить уровень представления там, где он был, когда анимация закончилась. Значение по умолчанию - YES, при котором выполняется возврат к значению модели, то есть к описанному вами поведению.
Также должен быть установлен fillMode, то есть
rota.fillMode = kCAFillModeForwards;