2023. 1. 2. 22:13ㆍiOS
먼저 로딩 중 일 때 뜨는 아이콘을 쓰고 싶어 알아보게 되었습니다.
바로 코드로 알아 보겠습니다.
먼저 저는 스토리보드 없이 코드로 진행하였습니다.
코드스토리보드 진행 시에 이렇게 하니 로딩 중 페이지가 나타났습니다.
private lazy var refreshControl: UIRefreshControl = {
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(fetchData), for: .valueChanged)
return refreshControl
}()
먼저 코드로 리프레시컨트롤을 만들어 줍니다.
@objc private func fetchData() {
refreshControl.endRefreshing()
}
타깃 액션(로딩 중)을 해야 하기 때문에 패치데이터 매소드 들 만들어 주었습니다.
override func viewDidLoad() {
super.viewDidLoad()
collectionView.refreshControl = refreshControl
}
그리고 저는 컬렉션 뷰에서 이와 같은 상황을 진행하였기 때문에
뷰디드 로드에서 컬렉션뷰. 리프레시컨트롤을 같다고 하였습니다.
(테이블뷰에서도 진행이 가능합니다.)
위와 같은 코드를 넣었을 경우 이렇게 로딩이 진행 중일 때의 로딩 아이콘을 넣을 수 있습니다.
이후 데이터를 넣은 상태에서 사용을 해야 할 텐데요! 그럴 때 데이터를 가져올 때에 패치 메서드를 진행할 수 있게 해야 합니다.
데이터를 다 가져온 다음에 리프레시컨트롤이 실행될 경우 무한 로딩 굴레에 빠질 수 있습니다.
'iOS' 카테고리의 다른 글
외부 라이브러리 (Cocoa Pods 추가하기) (0) | 2023.01.10 |
---|---|
didSelectRowAt 메소드 사용시 주의사항 (delegate) (0) | 2023.01.03 |
델리게이트 패턴에 대해서 알아보자!. (0) | 2022.11.20 |
IntrinsicContentSize 에 대해서 알아보기 (2) | 2022.11.20 |
기본적인 Userdefaults 사용 하기. (0) | 2022.11.08 |