我有一个应用程序,其界面包含条目的表视图和文本视图,以查看和输入该条目的文本。对于新创建的条目,我可以输入文本并滚动文本视图而不会出现问题。但是当我选择其他条目时,我在iOS 11设备上出现纵向问题。当我键入足够的文本以强制文本视图滚动时,文本视图不会滚动。我必须将设备旋转到横向并返回到纵向以启用文本视图滚动。对于运行iOS 9和iOS 10的设备,我没有这个问题。文本视图是一个已启用滚动的vanilla文本视图。
作为实验,我关闭了故事板的安全区域布局指南。这样做可以使文本视图在我第一次在表格视图中选择一个条目时滚动。但是,如果我回到表视图并返回到文本视图,我得到了与安全区域布局指南打开时相同的行为。除非我旋转到横向并回到纵向,否则文本视图不会以纵向滚动。
我添加到Apple标准UITextView的唯一代码是显示和隐藏键盘的代码。
@objc func keyboardWasShown(notification: NSNotification) {
// Scroll the text view so the keyboard doesn't block what's being typed.
let info = notification.userInfo
if let keyboardRect = info?[UIKeyboardFrameBeginUserInfoKey] as? CGRect {
let keyboardSize = keyboardRect.size
textView.contentInset = UIEdgeInsetsMake(0, 0, keyboardSize.height, 0)
textView.scrollIndicatorInsets = textView.contentInset
}
}
@objc func keyboardWillBeHidden(notification: NSNotification) {
textView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
textView.scrollIndicatorInsets = textView.contentInset
}
要在iOS 11设备上以纵向方式滚动文本视图,我该怎么办?