UIScrollView의 ContentView에 대해 궁금한 점이 있습니다.

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

      UIScrollView의 ContentSize를 지정 안한 상태에서

      subView로 그냥 단순 UIView를 넣었습니다. 그런데 UIView가 잘 뜹니다.

      ContentView의 Size를 지정 안했는데 SubView가 나오는거라면 ContentView에 clipsToBounds를

      설정 안했기 때문에 (설정 할 수 없을 뿐더러..) SubView가 나타날 수 있는건가요?

      ScrollView의 ContentSize를 지정하는 이유는 Scroll영역 때문에 지정하는걸로 알고 있습니다.

      위에 현상만 본다면 ContentSize는 subView가 들어갈 ContentView영역이랑은 상관 없이 단순 Scroll 영역 때문에만 설정하는거 같은데

      제가 생각하는게 맞는건가요?

      LayoutSubviews에서 자동으로 ContentSize 지정되는줄 알았는데 Print해도 ContentSize는 0,0 나오더라구요.

      UIScrollView의 ContentView가 정확히 무슨 역할을 하는지 알고 싶어요!

    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 580

      ContentSize는 subView가 들어갈 ContentView영역이랑은 상관 없이 단순 Scroll 영역 때문에만 설정하는거 같은데 제가 생각하는게 맞는건가요?
      -> content view의 영역이 맞고, content view 영역에 따라 스크롤 영역이 정해집니다. 말씀하신 설명이 반은 맞고 반은 틀린 설명이 되겠습니다. content view의 clipsToBounds는 scroll view에 설정한 content view size와는 무관합니다.
      content view는 scroll view가 표시해야 하는 뷰입니다.

      스크롤뷰 문서( https://developer.apple.com/documentation/uikit/uiscrollview )에서 발췌한 내용입니다.

      A scroll view is a view with an origin that’s adjustable over the content view. It clips the content to its frame, which generally (but not necessarily) coincides with that of the app’s main window.

      스크롤뷰를 제대로 이해하기 위해서는
      frame, bounds, inset, offset 등의 용어를 명확히 이해해야합니다.

      View는 사실 크기나 영역이 무한대입니다만, frame이라는 틀을 통해서 사용자가 볼 수 있게 된다는 점을 이해한다면 여러모로 이해하기 편합니다.

      아래 문서가 도움이 될 수 있습니다.
      https://developer.apple.com/library/archive/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/WindowsandViews/WindowsandViews.html#//apple_ref/doc/uid/TP40009503-CH2-SW6

      스택 오버플로에 좋은 답변도 있네요
      https://stackoverflow.com/questions/1210047/cocoa-whats-the-difference-between-the-frame-and-the-bounds/28917673#28917673

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

logo landscape small

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