如何创建动画信用页面?

时间:2009-08-24 06:42:03

标签: iphone

我有一个UITextView,它有很多内容(例如信用视图),我想为它创建一个自动滚动视图(类似于Firefox的信用页面) 它会自动滚动名称

我已尝试过以下内容,但它并不顺畅,我还要求当用户转到该视图时会自动发生

CGPoint scrollPoint = textView.contentOffset;

scrollPoint.y= scrollPoint.y+10;

[textView setContentOffset:scrollPoint animated:YES];

任何指导?

3 个答案:

答案 0 :(得分:1)

由于UITextViewUIScrollView的子类,因此您可以使用其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)