在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
:
- select包含您的
text view
view controller
- 取消选中
Adjusts Scroll View Insets
属性
我真的不知道这是否是一个真正的function…这个64点自动插入仅在UIScrollView
或UITextView
作为视图控制器视图的所有子视图的更深度时添加。 例如,如果你添加一个视图(这里我说的是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; }