혹시 여러분은 스크롤뷰를 한번에 스크롤 시키나요?

저같은 미련곰탱이쉑은 스크롤뷰 원트 성공을 해본적이 많이 없습니다. 어느 순간 여차저차하면 막 잘 움직여졌는데, 이참에 확실하게 정리를 하고 가보려고해요! 그래도 명색이 솝트 2회차인데 말이죰? ㅋㅋ

ContentSize는 스크롤이 가능한 실제 내용의 크기를 의미합니다

ContentInset은 스크롤 가능한 영역의 주변에 여백을 추가하는 역할을 합니다.

1. 스크롤뷰가 작동하지 않는 경우

일단 왜 안되는지 이유들을 살펴보시죠 대충 아래와 같은 경우들이 있겠죠?

  1. ContentSize가 View 크기보다 작거나 같은 경우

    : UIScrollView의 스크롤이 작동하려면 **ContentSize**가 스크롤 가능한 영역의 크기보다 크거나 커야 합니다. 만약 같거나 작다면 스크롤이 동작하지 않는다.

  2. Auto Layout 제약 조건

    : UIScrollView와 그 안의 컨텐츠 뷰 간의 크기 및 위치 관련 Auto Layout 제약 조건이 충돌하는 경우 스크롤이 작동하지 않을 수 있습니다.

  3. 스크롤 뷰의 ScrollEnabled 속성

    : isScrolleEnabled가 false인 경우.. (이거면 그냥 나가라)

  4. Subview의 크기와 위치

    : 서브뷰의 크기와 위치가 **ContentSize**와 일치하지 않거나 **ContentInset**과 충돌하는 경우 스크롤 동작이 원활하지 않을 수 있습니다.

  5. UIScrollView의 Frame 크기

    : UIScrollView의 Frame 크기가 스크롤 가능한 영역을 벗어나면 스크롤 동작이 정상적으로 작동하지 않을 수 있습니다.

  6. ContentSize 설정

    : UIScrollView의 **ContentSize**가 적절히 설정되지 않으면 스크롤이 필요한 부분에서 작동하지 않을 수 있습니다.

자 근데 위에 이유들을 보면 가장 많이 나오는 단어가 바로 ContentSize, ContentInset입니다. 이것들이 과연 무엇일까요?

자 그럼 위에 내용들을 정리해서 보자면.. 아래와 같은 결론이 나오게 됩니다.. 공식문서에도 있어요!

Untitled

<aside> 💡 scrollView는 contentView의 사이즈를 알아야 언제 스크롤을 멈출지 알기 때문에 무조건 알아야한다.

</aside>

2. 그럼 스크롤뷰의 문제를 해결봅시다!