2016-05-29 2 views
0

У меня была эта проблема раньше, но я не мог понять, что это такое.Анимация UIView out scaled ведет себя странно

Если я анимационный просмотр «автономный» на игровой площадке, такая штука выглядит нормально, но теперь она просто выглядит в предоставленном GIF.

Анимация в порядке, но когда я хочу анимировать его (масштаб), он просто получает максимальный размер, а затем исчезает.

enter image description here

Вот код, который оживляет его:

self.circleView.transform = CGAffineTransformIdentity 
UIView.animateWithDuration(0.5, delay: 0, options: [], animations: { 
    self.circleView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.001, 0.001); 
}, completion: { 
    finished in 
    if finished { 
     self.resetStyle() 
     self.circleView.hidden = true 
     self.circleView.transform = CGAffineTransformIdentity 
    } 
}) 

func resetStyle() { 
    self.circleView.transform = CGAffineTransformIdentity 
    self.circleView.backgroundColor = nil 
    self.textLabel.textColor = UIColor.blackColor() 
} 
+1

что 'self.resetStyle()' делать? – Cjay

+0

Я добавлю его на вопрос – netigger

+0

Вы пытались применить эту анимацию к слою вашего представления вместо того, чтобы применять ее непосредственно к 'UIView'? И замените свое аффинное преобразование на 3D-преобразования? –

ответ

0

Попробуйте это:

@IBOutlet weak var circleView: UIView! 

@IBAction func leftAction(sender: AnyObject) { 
    self.circleView.layer.transform = CATransform3DMakeScale(0.001, 0.001, 1) 
    UIView.animateWithDuration(0.5) { 
     self.circleView.layer.transform = CATransform3DIdentity 
    } 
} 

@IBAction func rightAction(sender: AnyObject) { 
    circleView.layer.transform = CATransform3DIdentity 
    UIView.animateWithDuration(0.5) { 
     self.circleView.layer.transform = CATransform3DMakeScale(0.001, 0.001, 1) 
    } 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    circleView.backgroundColor = .blueColor() 
    circleView.layer.cornerRadius = CGRectGetMidY(circleView.bounds) 
} 

enter image description here

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