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

Getting text in scrollview to start at the top, not the bottom (Objective-C)

在我看来,我在代码的 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];

其中'jumps'文本从下到上。

并且我尝试将 setContentOffset 命令移动到 viewDidLoadviewWillAppear 部分,但它根本不起作用。

有什么方法可以让我的文本从文本的顶部开始,而不是从底部开始,而不需要动画、滚动或跳跃?

我只希望文本从顶部开始,并且不会出现用户在最终应用中可以看到的视觉跳跃。

如果我对你的问题有正确的理解,你正在使用 UITextView 来加载你的文本,是什么让这个问题变得很奇怪,因为 UITextView 的默认行为是从顶部开始。如果是这种情况,请确保没有对文本视图执行其他操作。另外,您可能想看看加载数据需要多长时间。

我现在通过将我的代码移动到以下方法来设法让它工作:

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

效果很好!