Swift
[Swift] UIScrollView 내 UITextView 의 Cursor 로 focus scroll 하는 방법
웰코발
2022. 11. 17. 20:05
UIScrollView 안에 UITextView를 넣고 textView에 포커싱을 올리면
키보드에 가려져 스크롤을 해야하는 번거로움이 있다.
그럴경우 아래와 같은 코드를 사용해보자.
// UITextViewDelegate 내 override 함수에 활용
func textViewDidChange(_ textView: UITextView) {
let deadlineTime = DispatchTime.now() + .milliseconds(100)
DispatchQueue.main.asyncAfter(deadline: deadlineTime) {
if let cursorPosition = textView.selectedTextRange?.end {
let caretPositionRect = textView.caretRect(for: cursorPosition)
print(caretPositionRect, "caret")
let pointsuperview = textView.convert(caretPositionRect, to: self.scrollView)
self.scrollView.scrollRectToVisible(pointsuperview, animated: false)
}
}
}
textview의 마지막 글자의 커서 위치를 얻어 해당 위치로 스크롤 시키는 방법이다.