【问题标题】:Getting text in scrollview to start at the top, not the bottom (Objective-C)让滚动视图中的文本从顶部开始,而不是从底部开始(Objective-C)
【发布时间】:2019-06-14 05:20:33
【问题描述】:

在我看来,我从代码的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 部分,但它根本不起作用。

有没有办法让我的文本从文本的顶部开始,而不是底部,没有动画、滚动或跳跃?

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

【问题讨论】:

  • 我不太明白这个问题,但是从viewWillAppear(不是viewDidAppear)调用的...animated:NO怎么样?

标签: ios objective-c uiscrollview


【解决方案1】:

如果我对您的问题有正确的理解,您正在使用UITextView 将您的文本加载到其中,这是什么让这个问题非常奇怪,因为UITextView 的默认行为是从顶部开始。如果是这种情况,请确保没有对文本视图执行其他操作。此外,您可能还想了解加载数据所需的时间。

【讨论】:

    【解决方案2】:

    我现在已经设法通过将我的代码移动到以下方法来完成这项工作:

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

    这很好用!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      • 2014-05-08
      • 2015-03-25
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      相关资源
      最近更新 更多