在iOS 10的UITextView顶部的空白空间

我有UITextView中的一些文字。 一切都很好,与iOS 6,但现在与iOS 7它离开了空白的顶部,然后将文本下方的文本视图的中间。 在这里输入图像描述

我没有设置任何contentOffSet。 请帮忙!

文本视图是滚动视图。 视图控制器将自动添加一个内容偏移来滚动视图,因为它假设他们将要在导航栏和状态栏后面向上滚动。

为防止出现这种情况,请在包含文本视图的视图控制器上设置以下属性:

self.automaticallyAdjustsScrollViewInsets = NO 

IronManGill目前的答案并不是一个好的解决scheme,因为它不是基于对问题发生原因的理解。

杰顿的答案也不是解决这个问题的最简单的方法。 你不需要重写。 把事情简单化!

所有你需要的是设置以下内容:

 self.automaticallyAdjustsScrollViewInsets = NO; 

在viewDidLoad方法中。

查看文档: https : //developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin

在Interface Builder中,

  • select包含UITextView的视图控制器。
  • 转到属性检查器。
  • 取消选中“调整滚动查看插图”。

这对我有效

 textView.textContainerInset = UIEdgeInsetsZero; textView.textContainer.lineFragmentPadding = 0; 

转到Interface Builder

  1. select包含您的text view view controller
  2. 取消选中Adjusts Scroll View Insets属性

在这里输入图像描述

我真的不知道这是否是一个真正的function…这个64点自动插入仅在UIScrollViewUITextView作为视图控制器视图的所有子视图的更深度时添加。 例如,如果你添加一个视图(这里我说的是z缓冲区,而不是视图重叠)的滚动视图,这个64点插入不会自动添加。

例如,这个添加插图:

在这里输入图像描述

在这种情况下,不添加插图:

在这里输入图像描述

这对我来说真的很奇怪……为什么操作系统要看这个视图的深度来决定是否应该扩展视图呢?

在迅速(Xcode 6)

  self.automaticallyAdjustsScrollViewInsets = false 

您可以通过添加以下内容来删除UITextView顶部的空白空间:

 yourTextView.textContainerInset = UIEdgeInsetsZero; 

我通过将内容偏移量设置为负值解决了此问题。 这里是Swift代码。

 yourTextView.setContentOffset(CGPoint(x: 0, y: -150), animated: true) 

你必须明白的是,这涉及到导航栏:

  • 如果您的内容位于导航栏下,您希望视图控制器自动调整滚动视图插图(默认)。
  • 如果您的内容不在导航栏下(您可能使用顶部排版指南作为顶部空间约束),则可以禁用自动滚动视图插入调整,如其他大多数回复中所述。

这是一个不专业的解决scheme,我敢肯定…但只是在textview后面加上一个空白标签可以解决问题。

这只适用于我(从iOS 7可用)

 [<#your UITextViewInstance#> setTextContainerInset:UIEdgeInsetsZero]; 

我尝试了以下技巧,它工作。

 - (void)viewDidLoad{ self.textView.scrollEnabled = NO; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; self.textView.scrollEnabled = YES; }