2016-02-07 5 views
0

Я думаю, что это должен быть простой вопрос для ответа, но я пока не смог найти решение.Swift Shrink Animation

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

Я попытался это:

UIView.animateWithDuration(10.0, animations: { 
    self.view.frame = CGRectInset(frame, 0.2 * frame.width, 0.2 * frame.height) 
}) 

Это термоусадочная вид, но он резко сносит его перед сокращением его только тогда уменьшается обратно к исходному размеру.

Я также попытался это:

UIView.animateWithDuration(10.0, animations: { 
    self.view.transform = CGAffineTransformMakeScale(0.01, 0.01) 
}) 

Но это та же проблема, что и первый вариант, хотя он и уменьшить его до меньшего размера, чем первоначальный размер после того, как взорвать его.

Как создать анимацию, которая уменьшает представление от его первоначального размера до меньшего размера?

+1

вы можете использовать CABasicAnimation и масштабировать view.layer –

ответ

1

Изучив CABasicAnimation, как рекомендовал Лео Дабус, я смог решить свою проблему. Вот некоторые простой код, который сжимается вид (хранится в переменной «вид») от исходного размера до меньшего размера (100x меньше):

let animation = CABasicAnimation(keyPath: "transform") 
var tr = CATransform3DIdentity 
tr = CATransform3DScale(tr, 0.01, 0.01, 1); 
animation.toValue = NSValue(CATransform3D: tr) 
view.layer.addAnimation(animation, forKey: "transform")