2013-08-12 6 views
1

У меня есть UIView, который равен 10 на 10, повернутый на 45 градусов, чтобы создать форму бриллианта.Анимация с поворотом UIView приводит к ее исчезновению

Вот код, который вращает вид:

triangle = [[UIView alloc] initWithFrame:CGRectMake(35, kUserViewHeight - 5, 10, 10)]; 
triangle.backgroundColor = [UIColor coolBlue]; 
//triangle.center = CGPointMake(5.0, 5.0); 
triangle.transform = CGAffineTransformMakeRotation(M_PI_2/2); 

Я нарочно закомментировал центральное значение, поскольку это ухудшит установку расположения зрения. Я полностью понимаю, что это, вероятно, проблема.

Вид прекрасно отображается, но когда я одушевляюсь, вид перемещается туда, где его предполагается, но по дороге он исчезает. Когда я избавляюсь от свойства triangle.transform, вид прекрасно анимируется и не исчезает, но, очевидно, это просто квадрат вместо алмаза.

Вот код анимации:

[UIView animateWithDuration:kAnimationInterval animations:^{ 

     triangle.frame = CGRectMake(115, kUserViewHeight - 5, 10, 10); 

}]; 

Потому что я планирую переместить ромб вокруг, установив центр становится проблематичным. Как я могу поворачивать представление, а затем анимировать его по экрану без его исчезновения? Есть ли какой-то особый способ вычислить точку центра именно там, где мне это нужно? Благодаря!

ответ

0

да, что у сделал это у поворачиваются его 90 градусов, как у сказал он исчезает, сделать так, который может помогает у одна вещь, в то время как у имеют оживляющий порядок важен


UIView* triangle = [[UIView alloc] initWithFrame:CGRectMake(35, 25, 10, 10)]; 
triangle.backgroundColor = [UIColor colorWithRed:1 green:.4 blue:1 alpha:1]; // i am seeting diff color but not matter 
[UIView animateWithDuration:0.2 animations:^{ 
    triangle.frame = CGRectMake(115, 20, 10, 10);//kUserViewHeight = 25 - 5 (i am assuming)   
//it must be after setting the frame, now put rotation for 45 degree 

triangle.transform = CGAffineTransformMakeRotation(M_PI/4);//it is M_PI/4 not M_PI /2 

}]; 


// triangle.transform = CGAffineTransformMakeRotation(M_PI/4); //you can put it hear or within the animation block 


Hopes помогает u :)

 Смежные вопросы

  • Нет связанных вопросов^_^