UIScrollViewDelegate를 알아보자
최근 배너창 여러개가 도는거랑 무한 스크롤에 관심이 생겼습니다.
UIScrollViewDelegate에 어떤것들이 있는지 알면 좋을 것 같아서 살펴보고 갈거에요 ㅎ
스크롤링, 줌잉, 스크롤의 감속, 스크롤 애니메이션같은 작업에 반응하는 메소드들!!
Responding to Scrolling and Dragging 함수들
scrollViewDidScroll
스크롤 할 때 실행되는 함수, 컨텐트의 오프셋을 가져올 수 있음.
scrollViewWillBeginDragging
스크롤을 드래깅 시작 할 때 실행되는 함수, 너무 조금 움직이면 수신을 못할 수 있음
scrollViewWillEndDragging
스크롤 드래깅이 곧 끝나요~~! 실행되는 함수, targetContentOffset을 설정하여 애니메이션 완료시 위치를 조정할 수 있음.
파라미터 scrollView = 터치가 끝났을 때 스크롤뷰 객체 ,withVelocity = 터치가 해제된 순간 스크롤 뷰의 속도, targetContentOffset = 스크롤이 정지할때 예상되는 오프셋
scrollViewDidEndDragging
스크롤 드래깅 끝났어요.. 알려줌
파라미터 willDecelerate = true면 감속하면서 애니메이션 false면 그냥 바로 스크롤 멈춤
scrollViewShouldScrollToTop
아이폰 상단 누르면 맨위로 가는 기능!! 말하는거임 ㅎ
스크롤 뷰의 프로퍼티로 있는 scrollToTop:Bool (기본적은로 True를 가짐)가 true여야지 작동함
만약 scrollToTop:Bool가 false면 아에 함수가 작동하지 않음 근데 scrollToTop:Bool가 true고 scrollViewShouldScrollToTop의 리턴이 false면 함수는 호출되는데 스크롤이 위로 가지 않음
반환 값 True = 맨 위로 스크롤 할 수 있음, False = 맨 위로 스크롤 할 수 없음.
scrollViewDidScrollToTop
아이폰 상단을 누르고 스크롤이 맨위로 가면 알려줌
scrollViewWillBeginDecelerating
스크롤뷰가 감속을 시작했음을 알려줌
프로퍼티 isDecelerating:Bool 로 감속을 제어가능
scrollViewDidEndDecelerating
스크롤 뷰가 감속을 종료헀음을 알려줌(움직이다 멈췄을 때)
후기
scrollToTop의 설명이 이해가 잘 되지 않아서 직접해봤습니다. 그냥 맨위로 가는건가 싶어서 스크롤해서 맨위로 올렸는데 미리 지정해둔 콘솔창이 안떠서 뭐지 ?? 했습니다. 그러다가 아이폰 상단을 치니까 콘솔창이 떠서 ㅋㅋㅋㅋㅋ 아 이거구나!! 했습니다.
스크롤안에서의 줌, 애니메이션에 다른 딜리게이트함수는 추후에 다루겠습니다. (쓸일있으면 ㅎ 지금은 아 저런것도 delegate로 되있구나.. )
실질적으로 무한스크롤을 할때에는 scrollViewDidScroll로 현재 스크롤 위치를 이용해서 구현하면 되겠네요 ㅎ
'iOS' 카테고리의 다른 글
[iOS] - UITableView (0) | 2021.09.26 |
---|---|
[iOS] UIView 도큐먼트읽기 (0) | 2021.07.16 |
[iOS] UserNotifications (2) | 2021.06.23 |
[iOS] 느껴봐 햅틱 진동 (0) | 2021.06.08 |
[iOS] 다크모드 막기 (0) | 2021.06.08 |