저같은 미련곰탱이쉑은 스크롤뷰 원트 성공을 해본적이 많이 없습니다. 어느 순간 여차저차하면 막 잘 움직여졌는데, 이참에 확실하게 정리를 하고 가보려고해요! 그래도 명색이 솝트 2회차인데 말이죰? ㅋㅋ
ContentSize는 스크롤이 가능한 실제 내용의 크기를 의미합니다
ContentInset은 스크롤 가능한 영역의 주변에 여백을 추가하는 역할을 합니다.
일단 왜 안되는지 이유들을 살펴보시죠 대충 아래와 같은 경우들이 있겠죠?
ContentSize가 View 크기보다 작거나 같은 경우
: UIScrollView의 스크롤이 작동하려면 **ContentSize
**가 스크롤 가능한 영역의 크기보다 크거나 커야 합니다. 만약 같거나 작다면 스크롤이 동작하지 않는다.
Auto Layout 제약 조건
: UIScrollView와 그 안의 컨텐츠 뷰 간의 크기 및 위치 관련 Auto Layout 제약 조건이 충돌하는 경우 스크롤이 작동하지 않을 수 있습니다.
스크롤 뷰의 ScrollEnabled 속성
: isScrolleEnabled가 false인 경우.. (이거면 그냥 나가라)
Subview의 크기와 위치
: 서브뷰의 크기와 위치가 **ContentSize
**와 일치하지 않거나 **ContentInset
**과 충돌하는 경우 스크롤 동작이 원활하지 않을 수 있습니다.
UIScrollView의 Frame 크기
: UIScrollView의 Frame 크기가 스크롤 가능한 영역을 벗어나면 스크롤 동작이 정상적으로 작동하지 않을 수 있습니다.
ContentSize 설정
: UIScrollView의 **ContentSize
**가 적절히 설정되지 않으면 스크롤이 필요한 부분에서 작동하지 않을 수 있습니다.
자 근데 위에 이유들을 보면 가장 많이 나오는 단어가 바로 ContentSize, ContentInset입니다. 이것들이 과연 무엇일까요?
자 그럼 위에 내용들을 정리해서 보자면.. 아래와 같은 결론이 나오게 됩니다.. 공식문서에도 있어요!
<aside> 💡 scrollView는 contentView의 사이즈를 알아야 언제 스크롤을 멈출지 알기 때문에 무조건 알아야한다.
</aside>