인프런 커뮤니티 질문&답변

kloudlili peter님의 프로필 이미지

작성한 질문수

UIKit - iOS14 실무 가이드 <iOS앱 진짜 개발자 되기>

Custom_Button_2

45도 회전의 경우

해결된 질문

작성

·

533

0

질문드립니다! 회전 angle을 여러가지로 해본 결과, 45도 회전의 경우에는 이미지가 정상적으로 표시가 안되는 것을 확인하였습니다. 

90도의 회전각을 나타내는 CGAffineTransform(rotationAngle: CGFloat.pi / 2) 인 경우에도 정상적으로 반영되는 것을 확인하였는데, 45도의 경우에는 입체적으로 회전이 되면서 이미지가 없어지더군요... 원인이 무엇인지 여쭤보고 싶습니다!

답변 2

0

답변 감사드립니다. 말씀해주신 것처럼  .pi / 10 각도의 회전을 준 결과 imageView 자체가 찌그러지는 형태로 나타나는 것을 확인하였습니다. 45도의 회전을 주는 코드에 관해서 검색을 한 결과, CABasicAnimation의 toValue, fromValue 를 이용한 방법이 있다는 것을 알게 되었습니다. 

여기서 한 가지, 여쭤보고 싶은 내용이 있어서 코드첨부와 함께 질문드립니다. 

저같은 경우에는 , segue를 통하여 새로운 VC에 이동하였기에, viewDidAppear의 부분에 아래와 같은 코드를 작성하였는데요. 강사님께서 보시기에 실무적용에 있어서 적합한 코드 작성인지 아닌지의 의견을 얻고자 질문드립니다!

(찾아 본 결과, 45도 회전은 이 코드밖에 없었습니다.. 강사님께서 쓰시는 다른 코드작성이 있으신지에 대해 여쭙고 싶습니다! )

      let rotation = CABasicAnimation(keyPath: "transform.rotation")

        rotation.fromValue = 0

        rotation.toValue = -(Double.pi / 4) // 시계 반대방향 45도 회전

        rotation.duration = 0.2

       

        rotation.fillMode = .forwards

        rotation.isRemovedOnCompletion = false

        rotateButton.layer.add(rotation, forKey: "rotationAnimation")

iOS Developer - 이정님의 프로필 이미지
iOS Developer - 이정
지식공유자

네 작성하신 코드로 사용하셔도 됩니다.

실제로 많이 사용하는 코드이기도 합니다.

CABasicAnimation를 선택하신건 좋은 선택 같습니다.

 

친절한 답변 감사드립니다!! 항상 고퀄리티의 영상, 감사드립니다!

0

iOS Developer - 이정님의 프로필 이미지
iOS Developer - 이정
지식공유자

안녕하세요

 

버튼안에 imageView를 45도나 90도처럼 비스듬하지 않게 회전하는건 상관없는데

다른 각도는 비스듬하게 각이 잡히면서 버튼안에서 회전이 이루어지니 imageView의 영역이 줄어들게 됩니다.

.pi / 10 정도로 살짝만 해보시면 확인이 되실겁니다.

그러므로 버튼안에 있는 이미지뷰를 사용하지 않고 이미지뷰를 따로 만들어서 올려두거나 하는식으로 작업이 필요합니다.

또는 버튼 자체를 회전시키는 방법등을 사용해야 됩니다.