Swift UITableView 마지막 행으로 이동
안녕하세요. 개발자 드리머즈입니다.
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()함수를 사용하면 될 것 같은데
확인은 못해봤습니다.
댓글 영역