iOS15에서부터 reconfigureItems를 사용할 수 있습니다. “To update the contents of existing (including prefetched) cells without replacing them with new cells…” cell을 update하기 위해서 reloadItems(\\_:)대신 사용합니다. 새로운 셀로 바꾸는 것이 아니기 때문에 퍼포먼스가 더 좋습니다. “Because this method reconfigures existing cells, the collection view or table view doesn’t call prepareForReuse for each cell dequeued.” 하지만 prepareForReuse가 불리지 않는 다는 점을..
UIViewPropertyAnimator 변수를 만듭니다. var animator: UIViewPropertyAnimator? = nil 애니메이션을 정의합니다. animator = UIViewPropertyAnimator(duration: duration, curve: .linear) { self.aView.frame = CGRect(x: 0, y: 0, width: 60, height: 60) self.aView.backgroundColor = .systemRed } animator?.addCompletion { position in position.printPosition(#function) } animator?.startAnimation() addCompletion 을 이용해서 완료 후 동작을 추..
https://developer.apple.com/documentation/uikit/uiviewpropertyanimator 뷰의 변경 내용을 애니메이션으로 만들고 해당 애니메이션을 동적으로 수정할 수 있는 클래스입니다. Declaration @MainActor class UIViewPropertyAnimator : NSObject Overview UIViewPropertyAnimator 개체를 사용하면 변경 내용을 애니메이션으로 만들고 애니메이션을 완료하기 전에 동적으로 수정할 수 있습니다. property animator를 사용하면 애니메이션을 처음부터 끝까지 정상적으로 실행하거나 상호작용 하는 애니메이션으로 전환하여 시간을 직접 제어할 수 있습니다. 애니메이터는 frame, center, alph..
Combine https://developer.apple.com/documentation/combine 이벤트 처리 연산자를 결합하여 비동기 이벤트 처리를 사용자 정의합니다. Overview Combine 프레임워크는 시간 경과에 따른 값 처리를 위한 선언적 Swift API를 제공합니다 이러한 값은 여러 종류의 비동기 이벤트를 나타낼 수 있습니다. Combine은 게시자(publishers)가 시간에 따라 변경될 수 있는 값을 노출하도록 선언하고 구독자(subscribers)는 게시자로부터 해당 값을 수신하도록 선언합니다. Publisher 프로토콜은 시간에 따라 일련의 값을 전달할 수 있는 유형을 선언합니다. 게시자(Publishers)에는 업스트림 게시자로부터 받은 값에 따라 작업을 수행하고 다시 ..