인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

kloudlili peter님의 프로필 이미지
kloudlili peter

작성한 질문수

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

Custom_Button_2

45도 회전의 경우

해결된 질문

작성

·

575

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 정도로 살짝만 해보시면 확인이 되실겁니다.

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

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

kloudlili peter님의 프로필 이미지
kloudlili peter

작성한 질문수

질문하기