【问题标题】:UITextView inside UIScrollView scroll problemUIScrollView里面的UITextView滚动问题
【发布时间】:2011-03-19 10:51:18
【问题描述】:

我遇到了一些被认为是我的情况的错误。可能这不是一个错误,而是一个特性;)。

这是我的情况:

我用我的内容加载 UIScrollView。在视图已经加载后,我的一部分内容会异步加载。这很好用而且没有问题。 然而,其中一些控件是 UITextView 控件。一旦我在 viewDidLoad 之后设置了这些控件的内容(文本属性),我的 UIScrollView 就会向下滚动到设置的最后一个 UITextView。我想防止这种情况发生,并希望 UIScrollView 保持其顶部滚动位置。

总结: 如果我在 viewDidLoad 方法中设置 Text 属性,则不会发生滚动。如果我在 viewDidLoad 方法之后在 UITextView 上设置 Text 属性(因为我异步加载数据),UIScrollView 将滚动到设置的最后一个 UITextView。我想阻止这个滚动。

我如何做到这一点?我有一种感觉,这只是一个设置错误的属性,但我似乎找不到它。

提前致谢。

编辑:

我尝试在设置值之前将“scrollEnabled”属性设置为 NO,之后设置为 YES,但这没有任何效果。设置 UITextView 的 text 属性后,ScrollView 仍会滚动。

【问题讨论】:

    标签: iphone objective-c cocoa-touch uiscrollview uitextview


    【解决方案1】:

    这也对我有用:p 但我必须将高度设置为小于 300(在我的情况下我只使用 10)。

    基本上,这个想法是在您更改 UITextView 的文本时,使文本视图不属于 UIScrollView 的可见区域。

    【讨论】:

      【解决方案2】:

      我通过解决方法解决了这个问题:

      我将滚动视图内容大小设置为较小的值,例如 320 x 300 或任何滚动视图框架的高度,然后完成我的工作,然后将内容大小恢复正常。

      这会在加载数据时防止滚动,并在加载完成后立即启用。

      【讨论】:

      • 或者你只是在设置所有文本之后设置所需的内容大小。谢谢你帮我解决这个问题
      【解决方案3】:

      这不会改变滚动问题,但可能会使其对用户“隐藏”:

      yourTextView.text = @"Eat more bananas!";
      yourScrollView.contentOffset = CGPointMake(0.0, 0.0);
      

      您的代码中的一些 sn-ps 将有助于更具体地解决问题。

      编辑: 或者尝试将 UITextViews 添加到 UIView,然后将 UIView 添加到 UIScrollView。确保 UIScrollView 的 contentSize 与 UIView 的 Size 一致。

      【讨论】:

      • 感谢您提供解决方案,我已成功实施。
      • 很棒的解决方案,我认为它是最智能和最通用的解决方案!我可能会投票给这个作为接受的答案!
      猜你喜欢
      • 1970-01-01
      • 2023-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      相关资源
      最近更新 更多