키보드가 노출될 때, 그에 맞게 TableView를 위로 스크롤 하는 법
Posted on 2021-11-15 by GKSRUDTN99
Swift&Xcode
Swift
Chat
키보드가 노출될 때, 그에 맞게 TableView를 위로 스크롤 하는 법
1. 아래 키보드 높이에 맞게 tableView의 ContentOffset을 조절한다.
2. 키보드 높이만큼 contentInset과 IndicatorIneset을 준다.
RxKeyboard.instance.visibleHeight
.distinctUntilChanged()
.asDriver(onErrorDriveWith: .empty())
.drive(onNext: { [weak self] height in
guard let self = self else { return }
var keyboardHeight:CGFloat = 0
if height > 0 {
keyboardHeight = height - UIApplication.shared.windows.first!.safeAreaInsets.bottom
self.tableView.setContentOffset(CGPoint(x: self.tableView.bounds.minX, y: self.tableView.bounds.minY + keyboardHeight), animated: false)
} else {
keyboardHeight = height
self.tableView.setContentOffset(CGPoint(x: self.tableView.bounds.minX, y: self.tableView.bounds.minY - self.tableView.contentInset.bottom), animated: false)
}
self.tableView.contentInset.bottom = keyboardHeight
self.tableView.verticalScrollIndicatorInsets.bottom = keyboardHeight
})
.disposed(by: disposeBag)