UIView를 화면 중앙에 애니메이션으로 표시하고 크기를 두 배로 늘린 다음 원래 위치로 돌아가는 동안 원래 크기로 마지막으로 줄이는 매우 기본적인 Swift Function을 만듭니다. 예상대로 실행 기능이 광고없이Swift Animation Issue
view.center = originalCenter
:
가func toTheCorner(view: UIView, delay: Double)
{
// record original position
let originalCenter = view.center
// record original bounds
let b = view.bounds
UIView.animateWithDuration(0.1, delay: delay, usingSpringWithDamping: 0.2, initialSpringVelocity: 0, options: .CurveEaseOut, animations: {
// move view to center of screen
view.center.x = self.view.bounds.width/2
view.center.y = self.view.bounds.height/2
}, completion: nil)
UIView.animateWithDuration(0.9, delay: delay + 0.1, usingSpringWithDamping: 0.8, initialSpringVelocity: 10, options: .CurveEaseOut, animations: {
// Fade image in
view.alpha = 1.0
// Increase size
view.bounds.size.height = b.height + b.height/2
view.bounds.size.width = b.width + b.width/2
}, completion: nil)
UIView.animateWithDuration(0.7, delay: delay + 1.0, usingSpringWithDamping: 0.8, initialSpringVelocity: 10, options: .CurveEaseOut, animations: {
// Shrink to original size
view.bounds.size.height = b.height
view.bounds.size.width = b.width
// Move to original position
view.center = originalCenter
}, completion: nil)
}
문제를 만드는 선이다 : 다음 코드이다. 보기는 화면 중앙에 나타나고 복식이 축소됩니다. 그러나 "view.center = originalCenter"를 입력하자마자 뷰는 중간이 아닌 화면 중앙에있는 원래 반점과 정확히 반대쪽에 나타나고 원래 점으로 이동합니다.
이 줄은 처음 두 애니메이션에 어떻게 영향을 줍니까? 이것은 이렇게 작동해야하고 매우 간단 할 것 같습니다 ...
Thank you! Ben
이상한 originalCenter의 값이 정의 된 후에 println하고, 다시'view.center = originalCenter'가있는 곳에서. 값은 무엇입니까? –
그들은 원래 위치의 중심 값입니다 ... 원래 중심점에서 숫자를 꽂는다면 똑같은 일이 발생합니다. – Mountainbrussell
코드를 복사/붙여 넣으면 모든 것이 올바르게 작동했습니다. 어쩌면 우리가 볼 문제를 보여주는 데모 프로젝트를 설정할 수 있습니까? 아마도 다른 일이있을 것입니다. –