我有 UITextView,里面有一些文字。在 iOS 6 上一切都很好,但现在在 iOS 7 上,它会在顶部留下空白区域,然后将文本放在 textview 的中间下方。
我没有设置任何 contentOffSet。请帮忙!
我有 UITextView,里面有一些文字。在 iOS 6 上一切都很好,但现在在 iOS 7 上,它会在顶部留下空白区域,然后将文本放在 textview 的中间下方。
我没有设置任何 contentOffSet。请帮忙!
文本视图是滚动视图。视图控制器将自动为滚动视图添加内容偏移量,因为假设它们希望在导航栏和状态栏后面向上滚动。
为了防止这种情况,请在包含文本视图的视图控制器上设置以下属性:
self.automaticallyAdjustsScrollViewInsets = NO
IronManGill 目前给出的答案并不是一个好的解决方案,因为它不是基于对问题发生原因的理解。
jrturton 的回答也不是最干净的解决方法。你不需要覆盖。把事情简单化!
您只需要设置以下内容:
self.automaticallyAdjustsScrollViewInsets = NO;
在 viewDidLoad 方法中。
在界面生成器中,
这对我有用
textView.textContainerInset = UIEdgeInsetsZero;
textView.textContainer.lineFragmentPadding = 0;
我真的很想知道这是否是一个真正的功能......这个 64 点自动插入仅在视图控制器视图的所有子视图的深度更大UIScrollView
时添加。UITextView
例如,如果您在滚动视图后面添加一个视图(这里我说的是 z-buffer,而不是视图叠层),则不会自动添加这个 64 点插图。
例如,这个添加了插图:
在这种情况下,不添加插图:
这对我来说真的很奇怪......为什么操作系统会查看视图的深度来决定是否应该扩展视图?
您可以UITextView
通过添加删除顶部的空白空间:
yourTextView.textContainerInset = UIEdgeInsetsZero;
快速(Xcode 6)
self.automaticallyAdjustsScrollViewInsets = false
我通过将内容偏移设置为负值解决了这个问题。这是斯威夫特代码。
yourTextView.setContentOffset(CGPoint(x: 0, y: -150), animated: true)
Swift 4 的解决方案:
textView.textContainerInset = UIEdgeInsets.zero
您必须了解的是,这与导航栏有关:
我尝试了以下技巧,它奏效了。
- (void)viewDidLoad{
self.textView.scrollEnabled = NO;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.textView.scrollEnabled = YES;
}
这是一个不专业的解决方案,我敢肯定......但只需在 textview 后面放置一个空白标签即可解决问题。
这对我有用(可从 iOS 7 获得)
[<#your UITextViewInstance#> setTextContainerInset:UIEdgeInsetsZero];