Swift3.0 애니메이션 1~Animate() 메소드 편~
4567 단어 SwiftUIAnimation
애니메이션을 배우고 싶어서 썼어요!
swift에 어떤 애니메이션과 방법이 있는지 저는 기본적인 것을 광범위하게 소개하고 싶습니다.
결론적으로 나는 이런 애니메이션을 만들 것이다.
Step 1. 애니메이션 방법에 따라 Constraint 설정
view.bounds.center.y 또는 x 축을 사용하여 이동할 수도 있습니다.
이번에는 애니메이션으로 하여금 Constraints의 값을 바꾸게 한다.
우선 색깔이 있는 박스를 한데 배열하고, 모두 아래의 constraint를 더해라
- width
- height
- top
- centerY constraint
다음 그림에 각각 어떤 constraint를 사용하는지 적혀 있습니다.
Step 2. IBOutlet으로 각각 제작된 constraint
@IBOutlet weak var orangeCenterYConstraint: NSLayoutConstraint!
@IBOutlet weak var pinkCenterYConstraint: NSLayoutConstraint!
@IBOutlet weak var greenTopConstraint: NSLayoutConstraint!
@IBOutlet weak var blueTopConstraint: NSLayoutConstraint!
@IBOutlet weak var redBox: UIView!
빨간 상자는 불투명도만 바뀌기 때문에 UIView의 Outlet을 제작했습니다.Step 3. 화면 밖으로 미리 놓고.
화면 밖으로 날아오려면view Will Apper를 화면 밖으로 내놓으세요.또한 빨간색 상자만 불투명도 0으로 설정합니다.viewWillApper()는 화면이 나오기 전에 처리되기 때문에 이 동작을 볼 수 없습니다.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//それぞれ画面から出す
orangeCenterYConstraint.constant += view.bounds.width
pinkCenterYConstraint.constant += view.bounds.width
greenTopConstraint.constant += view.bounds.height
redBox.alpha = 0.0
}
오렌지색과 핑크색 상자는 센터 Yconnstrant의 값을 증가시키고 화면의 width만 증가시켜 오른쪽에 숨겼다.초록색은 top Constraint 값을 증가시킵니다.
파란색 상자는 녹색에 끌려 설정 없이도 화면 밖으로 나온다.
Step 4. 애니메이션
viewDidApper() 애니메이션 쓰기를 완료하는 방법입니다.이 경우viewDidLoad()에는 아무것도 쓰지 않습니다!
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
UIView.animate(withDuration: 0.5, delay: 0.0, options: .curveEaseOut, animations: {
self.orangeCenterYConstraint.constant -= self.view.bounds.width
self.greenTopConstraint.constant -= self.view.bounds.height
self.view.layoutIfNeeded()
},completion:nil)
UIView.animate(withDuration: 1.5, delay: 0.5, usingSpringWithDamping: 0.3, initialSpringVelocity: 0.1, options: .curveEaseIn, animations: {
self.pinkCenterYConstraint.constant -= self.view.bounds.width
self.view.layoutIfNeeded()
//終わったらアニメーションする
}, completion: {(finished: Bool) in
UIView.animate(withDuration: 0.5, delay: 0.0, options: .curveEaseOut, animations: {
self.redBox.alpha = 1
}, completion: nil)
UIView.animate(withDuration: 0.5, delay:1.5, options: .curveEaseIn, animations: {
self.blueTopConstraint.constant += 200
self.view.layoutIfNeeded()
}, completion: nil)
})
}
5. 설명해 주세요!
animate () UIView 의 기본 코드는 이것입니다.기본 속성:
UIView.animate(withDuration: 0.5, delay: 0.0, options: .curveEaseOut, animations: {
// UIViewをアニメーションさせる
},completion:nil)
추가 속성: UIView.animate(withDuration: 1.5, delay: 0.5, usingSpringWithDamping: 0.3, initialSpringVelocity: 0.1, options: .curveEaseIn, animations: {
// UIViewをアニメーションさせる
}, completion:nil)
이거 하면 핑크색 박스처럼 점프가 끝납니다.연결 애니메이션
completion을 nil로 쓰지 않고 계속하면 애니메이션이 끝난 후에 다른 애니메이션을 시작할 수 있습니다.
UIView.animate(withDuration: 1.5, delay: 0.5, usingSpringWithDamping: 0.3, initialSpringVelocity: 0.1, options: .curveEaseIn, animations: {
//アニメーション1
}, completion: {(finished: Bool) in
UIView.animate(withDuration: 0.5, delay: 0.0, options: .curveEaseOut, animations: {
//アニメーション2:アニメーション1が終わったら実行される
}, completion: nil)
})
완성 코드는여기.앞으로도 이런 이슈가 실릴 예정이다.
[Animatior 클래스에서 이동, UITimingCurveProvider 사용법, CGAffinetransform, Present and Dismiss ViewController, UI V i e wCo t r o ller Animationing] 등
다음에는 Animator를 사용합니다.
Reference
이 문제에 관하여(Swift3.0 애니메이션 1~Animate() 메소드 편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Saayaman/items/37e6dd70c110db5e7396텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)