【问题标题】:UITextView large font text disappear when set setContentOffset with animation使用动画设置 setContentOffset 时 UITextView 大字体文本消失
【发布时间】:2017-04-01 00:37:05
【问题描述】:

我在 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){
     }];     
}

【问题讨论】:

  • 您是否尝试在UIScrollView 中使用UILabel 并对UIScrollView 进行动画处理?如果您的UITextView 不可编辑,那可能会解决您的问题
  • 谢谢默特。这是一个简单的好主意,但我的滚动基于文本中的位置。我的应用滚动使用 firstRectForRange ,它返回特定文本位置的 x y(我只需要 y)坐标。它不是 UILabel 兼容的方法,现在我尝试使用 UILabel 找到解决方案。谢谢你的想法。

标签: ios objective-c animation uitextview offset


【解决方案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];
}

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

【讨论】:

  • 感谢您的回复。但这不能正常工作,因为 animateWithDuration 不适用于 scrollRangeToVisible,我的意思是无法控制滚动速度
猜你喜欢
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 2011-03-04
相关资源
最近更新 更多