코딩

swift 애니메이션 만들고 최상단 뷰 올리는 방법 알아보자

kingarthur 2024. 9. 6. 20:49

애니메이션을 썻는데 자꾸 타이틀이 가려져서... 허우적 허우적

그리고 타이틀이 점점 줄어들게 하고 싶었느네 미이친~ 작아지고 이동하는 문제 자꾸 발생 

하지만 이겨냈어요 ~

 

 // textLabel을 뷰의 최상단으로 가져옵니다.
        self.view.bringSubviewToFront(self.textLabel)

        // 2초 동안 검정색 배경 유지
        self.view.backgroundColor = .black
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            // 배경색이 회색으로 변하는 애니메이션
            UIView.animate(withDuration: 0.1, animations: {
                self.view.backgroundColor = .lightGray
            }) { _ in
                // 텍스트 애니메이션
                UIView.animate(withDuration: 1.0, animations: {
                    let scaleTransform = CGAffineTransform(scaleX: 0.7, y: 0.7) // 텍스트 크기를 줄입니다
                    let translateTransform = CGAffineTransform(translationX: 0, y: -200) // 텍스트를 위로 이동합니다
                    self.textLabel.transform = scaleTransform.concatenating(translateTransform)
                }) { _ in
                    // 애니메이션 완료 후 배경색이 사라지면서 이미지가 보이도록
                    UIView.transition(with: self.view, duration: 0.5, options: .transitionCrossDissolve, animations: {
                        self.view.backgroundColor = .clear
//                        self.textLabel.textColor = .white
                    }) { _ in
                        // 1초 후에 메인 화면으로 이동
                        DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
                            self.showMainScreen()
                        }
                    }
                }
                
                // 이미지 뷰 표시 및 애니메이션
                self.logoImageView.isHidden = false
                self.logoImageView.alpha = 0
                UIView.transition(with: self.logoImageView, duration: 1.0, options: .transitionCrossDissolve, animations: {
                    self.logoImageView.alpha = 1
                })
            }
        }

 

요렇게 해서 만들어냈다... 아까운 나의 시간이지만 애니메이션 넌 쉽지 않은놈... 계산이 안되는 암튼 다음에 이거보고 참고하자 아자자

반응형