본문 바로가기

iOS 개발

(28)
[iOS/UIKit] Keyframe Animation 으로 연속적인 변화를 Animate 하기 UIView.animateKeyframes 한 개 또는 여러개의 Keyframe 으로 구성된 Animation 을 동작시킨다. func changeSummary(to summaryText: String) { UIView.animateKeyframes( withDuration: 1.0, delay: 0, animations: { [summary = self.summary!] in // Move label upward. UIView.addKeyframe( withRelativeStartTime: 0, relativeDuration: 0.5, animations: { summary.center.y -= 100 } ) // Move label down. UIView.addKeyframe( withRelative..
[iOS/UIKit] Fade 효과로 Transform Animation 구현하기 Transform Transform (변형) 은 크게 다음 3가지로 분류할 수 있다. 1. 회전 (Rotation) 2. 확대/축소 (Scale) 3. 옮김 (Translation) 원하는 변형 방법을 Fade 효과와 함께 사용할 수 있다. 아래 예시에서는 Translation 을 이용해본다. Label 을 이동(Translation)시키며 fade 효과로 전환하기 1. 보조 라벨(변경된 텍스트를 가진)을 투명하게 하여 기존 라벨 위치에 놓은 뒤 옆이나 위 아래로 translation 한다. 2. 기존의 라벨의 alpha 값을 0으로 바꾸며(Fade out) 보조 라벨이 translation 된 위치로 이동한다. 3. 보조 라벨을 Fade in하며 원래의 위치 (기존 라벨이 있던 위치) 로 옮긴다. 4...
[iOS/UIKit] Fade 효과로 화면 전환하기 Fade 효과로 화면 전환 1. 바꿀 화면을 얹은 View 를 생성하고 alpha 값을 0 (투명한 화면이 된다.) 으로 하여 현재 화면에 올린다. 2. withDuration 을 조절해 천천히 alpha 값을 1로 만든다. 3. 현재 화면을 바꿀 화면으로 바꾼 뒤 올린 View를 제거한다. func fade(to image: UIImage, showEffects: Bool) { // Create & Set up temp view. let tempView = UIImageView(frame: background.frame) tempView.image = image tempView.alpha = 0 background.superview!.insertSubview(tempView, aboveSubview: ..
[iOS] Architecture patterns(MVC,MVP,MVVM) 1.설계를 생각해야 하는 이유. -큰 규모의 소프트웨어를 제작할때, 설계 구조를 생각하지 않으면 관리가 어렵다.(버그를 찾기 힘들다..) → 즉, 소프트웨어를 이해하기 좋고, 분리되어 있어 테스트가 용이하며, 각각을 재사용할 가능성이 생긴다. 2.좋은 설계란? -기능의 책임이 균형있게 분산된 설계. -테스트가 용이한 설계. -사용이 쉽고, 유지 비용이 적은 설계. 3.Model? View? Controller(Presenter,ViewModel)? -Model: data에 접근,수정하는 계층. Domain data에 대한 책임이 있다. -View: 표현 계층에 대한 책임.(ios 개발 시 'UI'로 시작하는 것들!) -Controller(Presenter,ViewModel): View와 Model 사이를..