我有UITextView,里面有一些文字。 iOS 6的一切都很好,但现在使用iOS 7,它将空白留在顶部,然后将文本放在textview的中间。
我没有设置任何contentOffSet。 请帮助!
答案 0 :(得分:216)
文本视图是滚动视图。视图控制器将自动添加内容偏移以滚动视图,因为假设他们想要在导航栏和状态栏后面向上滚动。
要防止这种情况,请在包含文本视图的视图控制器上设置以下属性:
self.automaticallyAdjustsScrollViewInsets = NO
答案 1 :(得分:58)
IronManGill目前给出的答案并不是一个好的解决方案,因为它并非基于对问题发生原因的理解。
jrturton的回答也不是解决问题最简洁的方法。你不需要覆盖。保持简单!
您只需要设置以下内容:
self.automaticallyAdjustsScrollViewInsets = NO;
在viewDidLoad方法中。
答案 2 :(得分:47)
在Interface Builder中,
答案 3 :(得分:37)
这对我有用
textView.textContainerInset = UIEdgeInsetsZero;
textView.textContainer.lineFragmentPadding = 0;
答案 4 :(得分:24)
答案 5 :(得分:10)
我真的很想知道这是否是一个真正的特征...这个64点自动插入仅在UIScrollView
或UITextView
作为视图控制器视图的所有子视图的更深处时添加。例如,如果您在后面添加一个视图(这里我说的是z-buffer,而不是视图重叠)滚动视图,则不会自动添加此64点插入。
例如,这个添加了插图:
在这种情况下,不添加插图:
这对我来说真的很奇怪......为什么操作系统会根据视图的深度来决定它是否应该扩展视图?
答案 6 :(得分:6)
在swift上(Xcode 6)
self.automaticallyAdjustsScrollViewInsets = false
答案 7 :(得分:6)
您可以添加以下内容删除UITextView
顶部的空白区域:
yourTextView.textContainerInset = UIEdgeInsetsZero;
答案 8 :(得分:5)
我通过将内容偏移设置为负值来解决此问题。这是Swift代码。
yourTextView.setContentOffset(CGPoint(x: 0, y: -150), animated: true)
答案 9 :(得分:1)
您必须了解的是,这与导航栏有关:
答案 10 :(得分:1)
我尝试了以下技巧,但它确实有效。
- (void)viewDidLoad{
self.textView.scrollEnabled = NO;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.textView.scrollEnabled = YES;
}
答案 11 :(得分:0)
这是一个不专业的解决方案,我确定......但只是在textview后面放一个空白标签就能解决问题。
答案 12 :(得分:0)
这对我有用(可从iOS 7获得)
[<#your UITextViewInstance#> setTextContainerInset:UIEdgeInsetsZero];
答案 13 :(得分:0)
Swift 4解决方案:
textView.textContainerInset = UIEdgeInsets.zero