그래서 iOS 응용 프로그램에는 superview에 바인딩 된 위쪽, 아래쪽, 선행 및 후행 제약 조건이있는 autolayout을 사용하여 스토리 보드에 UIScrollview가 설정되어 있습니다. scrollview 안에 여러 개의 UITextviews 세로로 스택 된 stackview 있습니다. scrollview에 대한 내용은 잘 설정되어 있으며 위아래로 스크롤 할 수도 있습니다.UITextview UIScrollView에 포함 된 키보드 처리
내 문제는 키보드 처리와 함께 나타납니다. 나는 애플의 문서에서 권장하는 키보드 같은 방법으로 처리하고 있습니다 : Apple's Keyboard handling documentation
질문에 단지 참조 아래에 표시하지만 거의 애플의 예를 그냥 복사 - 붙여 넣기의되는 특정 코드 :
func keyboardDidShow(notification: NSNotification){
var info = notification.userInfo!
let keyboardSize = (info[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue.size
let contentInsets : UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, keyboardSize!.height, 0.0)
self.scrollView.contentInset = contentInsets
self.scrollView.scrollIndicatorInsets = contentInsets
var aRect : CGRect = self.view.frame
aRect.size.height -= keyboardSize!.height
if self.activeTextView != nil {
if (!aRect.contains(self.activeTextView!.bounds)){
self.scrollView.scrollRectToVisible(self.activeTextView!.frame, animated: true)
}
}
}
내 키보드 처리 코드 UITextFields 잘 작동하지만 UITextFields 함께 작동하지 않습니다. self.scrollView.scrollRectToVisible(self.activeTextView!.frame, animated: true)
이 호출되었지만 스크롤이 발생하지 않습니다.
스크롤 뷰의 내부 텍스트 뷰를 배치. 텍스트보기는 자신의 스크롤을 처리합니다. 스크롤 뷰에 텍스트 뷰 객체를 포함하지 않아야합니다. 이렇게하면 두 오브젝트의 터치 이벤트가 혼동되어 잘못 처리 될 수 있기 때문에 예기치 않은 동작이 발생할 수 있습니다.
그러나 UITextFields와 동일한 방식으로 숨겨진 textview를 스크롤하려면이 "자동"스크롤이 정말로 필요합니다. 어떤 제안 ??
추 신 : autolayout을 사용하여 contentsize에 맞게 UITextViews를 이미 자동 조정하므로 UITextViews에서 스크롤을 해제해도 상관 없습니다.
좋은 라이브러리처럼 보인다. 아마 더 큰 프로젝트를 위해서. KevinM의 나의 유스 케이스에 대한 답변은 훌륭했습니다. –