Swift UITableView 마지막 행으로 이동

프로그래밍/iOS 관련2018. 3. 30. 14:48

안녕하세요. 개발자 드리머즈입니다.


Swift에서 UITableView를 다루다보면 scroll을 마지막으로 이동하고 싶을 때가 있습니다.(scroll to bottom)

저의는 UITableView가 section과 row를 다 보여주고나서 마지막 행으로 스크롤을 이동하고 싶었습니다.


다행히 스택오버플로우에서 찾은 방법이 잘 동작했습니다.


    func scrollToBottom(){

        DispatchQueue.main.async {

            let indexPath = IndexPath(row: lastRowInLastSection, section: lastSection)

            self.tableView.scrollToRow(at: indexPath, at: .bottom, animated: true)

        }

    }


먼저 위와 같이 scrollToBottom() 함수를 만듭니다. IndexPath 생성자에 들어간 lastRowInLastSection과 lastSection 각자의 코드에서 구해야합니다. UITableView를 표시하는데 사용되는 데이터를 통해 구할 수 있습니다.


그 다음에 해야할 일은 UITableView가 동작을 완료하는 시점에 스크롤을 마지막으로 이동시키는 것입니다.

이 부분이 좀 고민 됐었는데 그냥 reloadData()함수 바로 다음에 scrollToBottom()을 호출하면 잘 동작하네요.


self.tableView.reloadData()

self.scrollToBottom()



reloadData()를 사용하지 않는 경우라면 viewDidLoad()의 마지막에 scrollToBottom()함수를 사용하면 될 것 같은데

확인은 못해봤습니다.




작성자

Posted by 드리머즈

관련 글

댓글 영역