UITextView setContentOffset,在iOS7中使用scrollEnabled = NO

时间:2013-09-16 10:15:27

标签: ios uikit uitextview ios7

我的应用中有自动滚动功能。当它被激活时,我的代码会禁用textView滚动并使用CADisplayLink更改contentOffset。

在早期版本的iOS中运行良好,但在第7个文本中出现裁剪。

进一步发现后,我发现在禁用textView滚动后,contentSize被更改了一段时间。看起来像某种优化。但它不会考虑contentOffset

要重现此错误:

  1. 确保textView中的文字足够大,至少有两页。
  2. 在ViewController中将_textView.scrollEnabled = NO;放入-viewDidLoad
  3. 在ViewController中添加:

    - (void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
        [_textView setContentOffset:CGPointMake(0, 400) animated:YES];
    }
    
  4. 问题是:当UITextView设置为scrollEnabled时,如何在iOS7中自动滚动NO

    禁用滚动以停止可能UITextView内置自动滚动插入位置更改并禁止用户与控件进行交互。

2 个答案:

答案 0 :(得分:4)

如果您的文字在底部裁剪,而scrollEnabled为NO:

self.textContainerInset = UIEdgeInsetsMake(0.0f, 0.0f, -20.0f, 0.0f);

答案 1 :(得分:1)

不能完全解决问题,但作为一种解决方法,您可以允许启用滚动,但将UserInteractionEnabled设置为NO。

[_textView setScrollEnabled:YES];
[_textView setUserInteractionEnabled:NO];