我已将约束设置为文本视图,如下图所示:
但是正如您在模拟器上看到的那样,对于ARTIST NAME标签下的文本视图,contentOffset是不同的。似乎文本视图尝试首先显示底部然后从顶部显示文本:
我想尝试在没有任何代码的情况下解决此问题,但我添加了此方法,将文本视图滚动到顶部:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.theTextView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
}
当我调试代码并在行[self.theTextView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO]
之前打印文本视图时,文本视图的contentOffset为 0,144.5 :
(lldb) po self.theTextView
<UITextView: 0x7d26ac00; frame = (3 423; 153 90); text = 'Lorem ipsum dolor sit er ...'; clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7bbbdf30>; layer = <CALayer: 0x7bbbd540>; contentOffset: {0, 144.5}; contentSize: {153, 243}>
[self.theTextView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO]
contentOffset 0,0 :
(lldb) po self.theTextView
<UITextView: 0x7d26ac00; frame = (3 423; 153 90); text = 'Lorem ipsum dolor sit er ...'; clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7bbbdf30>; layer = <CALayer: 0x7bbbd540>; contentOffset: {0, 0}; contentSize: {153, 243}>
但我可以弄清楚为什么约束会带来内容偏移的一些问题。为什么在开始文本转移。没有任何约束,文本视图显示“Lorem ipsum”作为第一行,但有约束它显示“nulla pariatur ...”,因为您可以在上面的图像上看到完整的可见线,上面的线完全被截断。
答案 0 :(得分:1)
在layoutSubviews中,如果UIView和viewDidLayoutSubview广告中的以下行:
[textview setContentOffset:CGPointMake(0,0)];
这对我有用。