본문 바로가기
iOS/이슈

[iOS Issue] UIView.animate로 view크기 조절 시 클릭 안되는 현상

by Sky Titan 2021. 3. 24.
728x90

아래와 같은 종류의 animation으로 크기가 늘어났다 줄어들었다 하는 expandable한 button을 만들고 있었다.,

 

Creating an Expandable Button in Swift

We’re going to build a custom expandable button in Swift, like the one below:

medium.com

 

animation의 process는

  1. 버튼이 펼쳐짐
  2. 3.2초 기다림
  3. 버튼이 다시 닫힘

이다.

 

문제가 발생한 건 버튼이 펼쳐지고 다시 닫히기 전까지 클릭을 했을 때 펼쳐진 부분이 클릭이 안되고 밑에 있는 화면이 자꾸 클릭이 되었다.

 

혹시나 전체 화면에서 view 크기가 변한 걸 인식 못한 건가 싶어 viewDidLayoutSubview에 로그를 찍어 크기를 확인해보니 문제는 UIView.animate의 delay 옵션에 있었다.

 

UIView.animate의 delay 파라미터에 3.2초라는 옵션을 넣고 애니메이션을 실행하게 했는데 animate함수는 delay전에 이미 animation 클로저를 실행하고 사용자에게 보여지는 것만 3.2초 뒤에 애니메이션이 실행되기 하는 옵션이었다...ㅠ

 

그래서 DispatchQueue.main.asyncAfter 함수로 딜레이 넣는 방법을 수정했더니 잘되더라...

728x90

댓글