autoLayout의 constant 설정을 layoutSubviews에서 해도 되나요?

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • Ky J
      참가자
      • 글작성 : 9
      • 답글작성 : 3

      안녕하세요. 제가 하고 싶은건 uiview를 오토레이아웃을 하고 난 뒤 애니메이션을 이용해서 topAnchor를 변화 시키고 싶습니다.

      저는 autoLayout constant에 슈퍼뷰(UIView)의 frame을 이용했습니다.

      슈퍼뷰도 초기화후 오토레이아웃으로 잡아주고 있어요.

       

      testViewTopAnchor?.constant = bounds.height * 0.8
      

       

      슈퍼뷰의 bounds가 viewWillLayoutSubviews에서 적용되는걸로 알고 있어서

      layoutSubviews에 저 코드를 넣으면 되긴하는데 이게 맞는지 궁금합니다. 그 후에 제스쳐 tap으로 트리거 되는 autoLayout 애니메이션을 넣어줄려고 합니다.

      testView autoLayout topAnchor를 UIViewPropertyAnimator으로 애니메이션을 넣을려고 하는데 layoutIfNeeded()에서 에러가 나네요..
      Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

      문제점이 무엇인지 궁금합니다.. 관련된 키워드라도 알려주시면 감사하겠습니다.ㅠㅠ

    • rhrnakrnakr
      참가자
      • 글작성 : 0
      • 답글작성 : 40

      정답은 없다고 생각되네요. 코드의 근거가 막연하시다면 관련 메소드들 중에서 그게 가장 적합한 게 맞는지 조사해보시면 좋을 것 같습니다.

      에러는 구글링을 해보니 스택오버플로우에 관련 질문이 있네요. swift가 c++을 기반으로 만들어졌기 때문에 c++에서 에러가 난 것으로 보입니다. 제 생각에는 다른 방법으로 애니메이션을 주셔야할 것 같네요.

       

1 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom