iOS/Swift

Swift) UIRefreshControl 사용

Brad_Heo 2022. 8. 3. 22:51

image

위로 당겨서 새로고침

프로젝트 진행하면서 서버 데이터들이 업데이트가 될 수도 있기 떄문에 바로 바로 확인하기 위해서 새로고침 기능이 필요하다고 느껴서 구현해 보았습니다.

필요한 것

UIRefreshControl 인스턴스 생성!

let refreshControl = UIRefreshControl()

UIRefreshControl 이란??

image

공식문서 설명으로 "스크롤 보기의 내용 새로 고침을 시작할 수 있는 표준 컨트롤" 이라고 되어 있습니다.

무슨 뜻인가 생각해보니 아래 사진을 보고 이해했는데

image

또한 공식문서 내용 중 "You use that notification to update your content and dismiss the refresh control."
-> 해당 알림을 사용하여 콘텐츠를 업데이트하고 새로 고침 컨트롤을 해제합니다" 라는 내용으로 위의 UIRefreshControl를 통해 콘텐츠를 업데이트 할 수 있다? 라고 이해해 보았습니다.

콘텐츠 업데이트할 시기를 알아야 되기 떄문에 공식문서에서 제공하는 작업 메서드를 호출해서 사용해 보았는데

image

예제 코드를 보았을 때refreshControl의 값이 바뀔 때, 동작할 시(valueChanged), 어떤 함수가 동작할지 #selector안에 선언해주어서 addTarget을 매칭을 해주고, 작업 메서드를 사용하여 콘텐츠를 업데이트하고 완료되면 새로 고침 컨트롤의 endRefreshing() 메서드를 호출한다고 되어 있다고 이해했습니다.

프로젝트에 해당 코드 적용

image

`CollectionView`를 업데이트 해야 되기 떄문에 `mySrcollView`에 `CollectionView`를 업데이트 해주는 메소드 넣어 주니 정상적으로 동작했습니다. 추후에 업데이트 예상하는 기능도 넣으면 좋을 것 같습니다. (현재는 딜레이 1초정도 줌)

업데이트 영상

Aug-03-2022 22-39-35

참고자료

'iOS > Swift' 카테고리의 다른 글

Swift) TableView Swipe  (0) 2022.08.20
Swift) Localize  (0) 2022.08.18
Swift) iOS 메모리 영역 확인하기(Stack)  (0) 2022.07.25
Swift) 네트워크와 무관한 URLSession Unit Test를 하는 목적  (0) 2022.07.23
Swift) CollectionView란??  (0) 2022.07.23