使用动画设置setContentOffset时,UITextView大字体文本消失

时间:2017-04-01 00:37:05

标签: ios objective-c animation uitextview offset

我在stackoverflow上读取了所有存在的解决方案,但是没有缺陷。

当我尝试使用动画滚动文本以定位时,在UITextView中出现问题。 滚动动画时,文本的上半部分会消失,但如果字体大小为15pt,则一切正常,但如果大约50pt则出现问题。

您可以在视频https://www.youtube.com/watch?v=EvIur672Q5k

上看到它

我也尝试创建我自己的方法来动画滚动循环,每个循环移动偏移0.5pt它工作但这利用了太多的处理器,我无法控制动画时间,因为处理器超载。 https://www.youtube.com/watch?v=Kw5hx3YAdMw

我也尝试以编程方式创建UITextView,结果相同。

我尝试在具有线性曲线的部分上进行分割动画,但是摇动时动画非常难看。

- (IBAction) start{

    _textView.scrollEnabled = NO;
    _textView.scrollEnabled = YES;


    UITextPosition *Pos2 = [_textView positionFromPosition: _textView.beginningOfDocument offset: 501];
    UITextPosition *Pos1 = [_textView positionFromPosition: _textView.beginningOfDocument offset: 500];
    UITextRange *range = [_textView textRangeFromPosition:Pos1 toPosition:Pos2];

    CGRect result1 = [_textView firstRectForRange:(UITextRange *)range];

    result1.origin.x=0;
    [UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^{
           _textView.contentOffset = result1.origin;
     } completion:^(BOOL finished){
     }];     
}

2 个答案:

答案 0 :(得分:1)

我相信你正在尝试这样做

- (IBAction)start:(id)sender {
   _textView.scrollEnabled = NO;
   _textView.scrollEnabled = YES;

   NSRange bottom = NSMakeRange(_textView.text.length, 0);
  [UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^{
    [_textView scrollRangeToVisible:bottom];
  } completion:nil];
}

这应该是文本长度的范围并滚动到它的底部。如果我误解了您的问题,请告诉我,我会尽力帮助

答案 1 :(得分:1)

我认为这不是你想要的,而是看here。也许你找到了解决方案。