본문 바로가기
개발 이야기

[iOS앱 개발] TableView 드래그로 새로고침 (UIRefreshControl)

by Jimmy_iOS 2023. 6. 8.

기존에 새로고침 버튼의 불편함 해소

기존에는 새로고침 버튼을 눌렀었는데 이게 높이 있어서 누르기가 정말 귀찮았습니다.

그래서 간편하게 테이블뷰를 아래로 드래그 해서 새로고침을 할 수 있는 기능을 간단하게 구현했습니다.

UITableView에 UIRefreshControl 추가하기

테이블뷰를 아래로 당겼을 때 새로고침하는 기능을 추가하려면, UIRefreshControl을 사용할 수 있습니다.

먼저, viewDidLoad()에서 UIRefreshControl을 만들고, newsTableView에 추가해줍니다.

그리고, refreshControl의 addTarget을 통해 사용자가 새로고침을 요청할 때 호출할 메서드를 지정해줍니다.

이후 아래로 당겨서 새로고침을 요청하면, addTarget으로 지정한 메서드가 호출되면서 뉴스 데이터를 새로고침하게 됩니다.

 

아래는 코드 예시입니다.

override func viewDidLoad() {
    super.viewDidLoad()
    // UIRefreshControl 생성
    let refreshControl = UIRefreshControl()
    refreshControl.addTarget(self, action: #selector(refreshNews), for: .valueChanged)
    newsTableView.refreshControl = refreshControl
}

// 아래로 당겨서 새로고침
@objc private func refreshNews() {
    fetchNews()
    newsTableView.refreshControl?.endRefreshing()
}