我有一个UITextView,它有很多内容(例如信用视图),我想为它创建一个自动滚动视图(类似于Firefox的信用页面) 它会自动滚动名称
我已尝试过以下内容,但它并不顺畅,我还要求当用户转到该视图时会自动发生
CGPoint scrollPoint = textView.contentOffset;
scrollPoint.y= scrollPoint.y+10;
[textView setContentOffset:scrollPoint animated:YES];
任何指导?
答案 0 :(得分:1)
由于UITextView
是UIScrollView
的子类,因此您可以使用其scrollRectToVisible:animated:
方法将动画滚动到您希望的任何位置。
PageControl示例代码演示了它的用法(虽然它是水平滚动)。
答案 1 :(得分:0)
到目前为止,我已经做到了这一点,但仍然不顺利......
有什么建议吗?
- (void)viewDidLoad {
[super viewDidLoad];
[self run];
}
-(void)run{
CGRect Frame1 = CGRectMake(5.0,5.0, 100.0,400.0);
CGPoint scrollPoint = textView.contentOffset;
scrollPoint.y= scrollPoint.y+100;
[textView setContentOffset:scrollPoint animated:YES];
[textView scrollRectToVisible:Frame1 animated:YES];
NSTimer *time;
time=[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(run) userInfo:nil repeats:YES];
}
答案 2 :(得分:0)
scrollRectToVisible: animated:
和setContentOffset: animated:
都没有属性来控制动画发生的速度或持续时间,因此两者都会很快滚动到目的地点。对于像积分这样的东西来说,它们不是很好的解决方案,它应该慢慢滚动。
使用UIView animateWithDuration:
然后在动画块中传递contentOffset
可能是最好的方法。但是,如果文本的长度太长(甚至在iOS 10.0 SDK中),则会出现在顶部剪切文本的错误。这里讨论的这个bug有两个可行的解决办法:
UIView.animateWithDuration on UITextfield's contentoffset: It clips the text (Swift)