/ ios

이중스크롤문제(double uiscrollview issue)

issue 1

iOS에서 UIWebview를 사용할 때 UIWebview내에서 스크롤이 생기지 않도록 하기 위해서 컨텐츠 사이즈 만큼 UIWebview 사이즈를 지정했었다.
문제는 컨텐츠가 무지막지하게 길면 앱크래쉬...(렌더링 메모리 이슈 발생)
안드로이드는 화면에 보이는 부분만 렌더링한다고 하던데 iOS는 그러지 않았다. ㅠㅜ

issue 2

UIWebview 사이즈를 특정 사이즈로 지정하고 스크롤이 생기도록 하였다. 메모리 이슈로 더 이상 앱크래쉬는 발생하지 않았지만 이중 스크롤이 발생해서 사용성이 불편해졌다. ㅠㅜ

resolve

이중 스크롤을 해결하는 방법을 공유한다.

  1. 부모 스크롤은 활성화 자식 스크롤은 비활성화
  2. 부모 스크롤 발생시 스크롤 양을 측정
  3. 자식이 스크롤 되어야 하는지 부모가 스크롤 되어야 하는지 판단
  4. 자식이 스크롤 되어야 하는 경우 부모 스크롤 값은 변경하지 않고 스크롤 양 만큼 자식의 스크롤을 변경
  5. 자식이 스크롤 되어야 하는 조건
    • 화면내에서 자식만 노출 될 경우
    • 자식 스크롤이 상단이나 하단 끝에 도달하지 않은 경우