使滚动视图中的文本从顶部开始,而不是从底部开始(Objective-C)

时间:2019-01-20 18:13:50

标签: ios objective-c uiscrollview

在我看来,我从代码的viewDidLoad部分中的数据库中加载了一些文本内容。

这很好用,看起来很好,但是在运行应用程序时,滚动视图位于文本的最底部。

我在下面添加了此代码:

-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear: animated];
[self.descriptionTextV setContentOffset:CGPointZero animated:YES];
}

现在这会将滚动视图移动到文本的顶部,这是我想要的,但是要花几秒钟才能完成,而且会分散注意力。

我尝试过

[self.descriptionTextV setContentOffset:CGPointZero animated:YES];

通过动画滚动文字几秒钟。

[self.descriptionTextV setContentOffset:CGPointZero animated:NO];

将文本从底部“跳转”到顶部。

我尝试将setContentOffset命令移至viewDidLoadviewWillAppear部分,但随后根本不起作用。

有没有办法让我的文本在没有动画,滚动或跳跃的情况下从文本的顶部(而不是底部)开始?

我只希望文本从顶部开始,并且不希望用户在最终应用程序中看到视觉跳转。

2 个答案:

答案 0 :(得分:0)

如果我对您的问题有正确的了解,则说明您正在使用UITextView将文本加载到其中,这使这个问题真的很奇怪,因为UITextView的默认行为是开始从顶部开始。在这种情况下,请确保没有在文本视图上执行其他任何操作。另外,您可能想看看加载数据需要花费多长时间。

答案 1 :(得分:0)

现在,通过将代码移至以下方法,我设法解决了这个问题:

-(void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    [self.descriptionTextV setContentOffset:CGPointZero animated:NO];
}

这很好用!