【发布时间】: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