Closed jinios closed 6 years ago
// 예시코드
...
guard let cardView = startView.selectedView(currentPos) else { return }
UIView.animate(
withDuration: 0.5,
animations: {
cardView.frame.origin.x += move.x
cardView.frame.origin.y += move.y
},
completion: { [weak self] _ in
(startView as? TableauPilesView)?.insertLastSubview(at: currentPos.stackIndex)
self?.moveCardViews(view: startView, tappedView: cardView, startIndex: currentPos.stackIndex)
})
}
...
animate()
는 타입메소드로, 동작은 간단하다.
animations {}
블럭 안에 구현된 동작을 withDuration
시간동안 animated하게 뷰에서 보이도록 실행한다는 뜻이다. completion
은 animations동작이 끝난 후 실행될 코드를 넣어준다. 없다면 생략할 수 있고, 만약 이어서 또다른 애니메이션 효과를 원한다면 UIView.animate()
를 또 호출할 수 있다.
animation적용을 위해선 from & to 지점의 frame 값을 알아야 한다.