2016-04-12 7 views
0

Следующий код сломает фрейм (который будет огромным), как видно из iOS 8.1.3.Неверный кадр после добавления преобразованного вида в UIWindow или UIView

someView.layer.transform = CGAffineTransformMakeScale(0.001f, 0.001f); 
[[[[UIApplication sharedApplication] keyWindow].subviews lastObject] addSubview:someView]; 

[UIView animateWithDuration:0.3f animations:^{ 
    someView.transform = CATransform3DIdentity; 
}]; 

Снятие трансформации и замена его простой анимацией движения кадра хорошо работает. Зачем?

ответ

0

После некоторых исследований и обоснований я пришел к выводу, что было бы неплохо применить преобразование someView после, оно было добавлено к представлению. И это оказалось решением. Поэтому мы пишем:

[[[[UIApplication sharedApplication] keyWindow].subviews lastObject] addSubview:someView]; 
someView.layer.transform = CGAffineTransformMakeScale(0.001f, 0.001f); 

[UIView animateWithDuration:0.3f animations:^{ 
    someView.transform = CGAffineTransformIdentity; 
}]; 

Работает должным образом.