UITextView不会滚动到顶部

时间:2016-05-30 15:56:43

标签: ios objective-c uiscrollview uitextview scrolltop

更新 - 我现在认为这是因为我过早地调用[view.details scrollRangeToVisible:NSMakeRange(0, 1)]; - 意味着在应用约束并重新计算布局之前。

通过在显示视图后调用scrollRangeToVisible并在之后调用我在单元格上执行了一些操作,我想到了这一点。 (这样可以保证在拨打电话之前所有布局更改都已完成。)

因此,我现在需要知道的是我应该在哪里进行此调用?以便在布局之后发生?

原帖 我尝试了很多解决方案,但似乎都没有。

我有UITextView作为UIView的子视图 - 文本视图的容器以及其他一些项目。当用户点击tableView中的单元格时,我会弹出UIView容器以显示更多详细信息 - 全文。

配置视图,我将textView.text值设置为我的长字符串,我更新字体,设置颜色,然后显示容器视图。不幸的是,它显示的是文本视图底部而不是顶部的文本。

我尝试了以下解决方案,但无济于事 - 每个解决方案都会产生与上述相同的行为:它仍会在textview底部显示文本。

尝试1:scrollRangeToVisible

  • [self.textView scrollRangeToVisible:NSMakeRange(0,1)];

尝试2:contentOffset(尝试了以下各项,但都没有工作)

  • [self.textView setContentOffset: CGPointMake(0, -self.textView.contentInset.top) animated:YES];
  • [self.textView setContentOffset:CGPointMake(self.textView.contentOffset.x, 0) animated:YES];
  • [self.textView setContentOffset:CGPointMake(0, self.textView.contentSize.height-textView.frame.size.height) animated:YES];

我和那些最后的物品一起钓鱼了吗?是。我已经没想完了。我检查了contentOffset.ycontentInset.y的值 - 两者都是零。

我在名为UITextView的{​​{1}}子类中创建了UIView。这是过程:

  1. 在表格所在的主PrayerPopupView中,用户触摸一个单元格。基于此行动......
  2. 我在此视图控制器中创建了UIViewController的实例
    • 在创建此视图时,会创建PrayerPopupView
    • 设置了UITextView值。
    • 我叫`[self.details scrollRangeToVisible:NSMakeRange(0,1)];
  3. 我使用自定义类(KLCPopup)将视图添加到textView.text,但我也通过直接添加UIWindow作为视图控制器的子视图而不是使用KLCPopup进行测试,以防万一这很重要。两者都产生相同的文本结果,不能正确滚动到顶部。
  4. 由于添加scrollRangeToVisible在自定义视图中无法使用,因此在显示PrayerPopupViewUIViewController)之前,我还在PrayerPopupView中添加了它,但结果仍然相同。
  5. 以下是该视图的屏幕截图: enter image description here

    以下是调试器中视图属性的屏幕截图: enter image description here

    这显示了调试器中的视图层次结构: enter image description here

0 个答案:

没有答案