답변:
텍스트보기는 스크롤보기입니다. 보기 컨트롤러는 탐색 표시 줄과 상태 표시 줄 뒤에서 위로 스크롤하려는 것으로 가정하므로 스크롤보기에 콘텐츠 오프셋을 자동으로 추가합니다.
이를 방지하려면 텍스트 뷰를 포함하는 뷰 컨트롤러에서 다음 속성을 설정하십시오.
self.automaticallyAdjustsScrollViewInsets = NO
IronManGill이 제공 한 현재 답변은 처음부터 문제가 발생하는 이유에 대한 이해를 기반으로하지 않기 때문에 좋은 해결책이 아닙니다.
jrturton의 대답은 또한 그것을 해결하는 가장 깨끗한 방법이 아닙니다. 재정의 할 필요가 없습니다. 간단하게!
다음을 설정하기 만하면됩니다.
self.automaticallyAdjustsScrollViewInsets = NO;
viewDidLoad 메서드에서.
automaticallyAdjustsScrollViewInsets
더 이상 사용되지 않습니다. iOS11에서 사용contentInsetAdjustmentBehavior
이이 64 포인트 자동 삽입이 경우에만 추가 ... 진정한 기능의 경우 정말 궁금 UIScrollView
또는 UITextView
뷰 컨트롤러의 뷰의 모든 파단의 큰의 깊이로. 예를 들어 스크롤 뷰 뒤에 뷰를 추가하는 경우 (여기서는 뷰 임 브리 케이션이 아닌 z 버퍼에 대해 이야기합니다)이 64 포인트 삽입은 자동으로 추가되지 않습니다.
예를 들어 다음은 삽입을 추가합니다.
이 경우 삽입은 추가되지 않습니다.
이건 정말 이상해 보입니다. OS가 뷰를 확장해야하는지 여부를 결정하기 위해 뷰의 깊이를 확인하는 이유는 무엇입니까?
신속한 (Xcode 6)
self.automaticallyAdjustsScrollViewInsets = false
viewDidLoad
텍스트보기가있는보기 컨트롤러 에서이 작업을 수행하십시오 .
automaticallyAdjustsScrollViewInsets
더 이상 사용되지 않습니다. iOS11에서 사용contentInsetAdjustmentBehavior
콘텐츠 오프셋을 음수 값으로 설정하여이 문제를 해결했습니다. 다음은 Swift 코드입니다.
yourTextView.setContentOffset(CGPoint(x: 0, y: -150), animated: true)
[self.textView setContentOffset:CGPointMake(0.f, -self.topLayoutGuide.length) animated:NO];
Swift 4를위한 솔루션 :
textView.textContainerInset = UIEdgeInsets.zero