2009-08-24 3 views
2

У меня есть UITextView, который имеет много контента (например, кредит зрения), и я хочу, чтобы создать автоматический вид прокрутки для него (что-то вроде страницы кредитов для Firefox) , где он автоматически прокручивает именаКак создать анимированную страницу кредитов?

I попытался следующие, но это не так гладко, и я также требуют, чтобы это произошло автоматически, когда пользователь переходит на эту точку зрения

CGPoint scrollPoint = textView.contentOffset; 

scrollPoint.y= scrollPoint.y+10; 

[textView setContentOffset:scrollPoint animated:YES]; 

Любое руководство?

ответ

1

С UITextView является подклассом UIScrollView, вы можете использовать его метод scrollRectToVisible:animated: для прокрутки с анимацией в любую точку, которую вы хотите.

Образец кода PageControl демонстрирует его использование (хотя он прокручивается по горизонтали).

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]; 

} 
0

Ни scrollRectToVisible: animated:, ни setContentOffset: animated: имеют свойство контролировать скорости или продолжительность, в котором происходит анимация, так как будет перемещаться довольно быстро к месту назначения. Они не являются хорошими решениями для чего-то вроде кредитов, которые должны прокручиваться медленно.

Использование UIView animateWithDuration: и последующее прохождение contentOffset в блоке анимации, вероятно, лучший способ сделать это. Однако есть ошибка, которая зажимает текст вверху, если длина текста слишком длинная (даже в IOS 10.0 SDK). Для этой ошибки обсуждаются две жизнеспособные проблемы:

UIView.animateWithDuration on UITextfield's contentoffset: It clips the text (Swift)

Смежные вопросы