我想让我的uitextview
在应用程序启动时自动滚动。任何人都可以帮我详细的代码吗?我是iPhone SDK的新手。
答案 0 :(得分:11)
.h文件
@interface Credits : UIViewController
{
NSTimer *scrollingTimer;
IBOutlet UITextView *textView;
}
@property (nonatomic , retain) IBOutlet UITextView *textView;
- (IBAction) buttonClicked ;
- (void) autoscrollTimerFired;
@end
.m文件
- (void) viewDidLoad
{
// it prints the initial position of text view
NSLog(@"%f %f",textView.contentSize.width , textView.contentSize.height);
if (scrollingTimer == nil)
{
// A timer that updates the content off set after some time so it can scroll
// you can change time interval according to your need (0.06)
// autoscrollTimerFired is the method that will be called after specified time interval. This method will change the content off set of text view
scrollingTimer = [NSTimer scheduledTimerWithTimeInterval:(0.06)
target:self selector:@selector(autoscrollTimerFired) userInfo:nil repeats:YES];
}
}
- (void) autoscrollTimerFired
{
CGPoint scrollPoint = self.textView.contentOffset; // initial and after update
NSLog(@"%.2f %.2f",scrollPoint.x,scrollPoint.y);
if (scrollPoint.y == 583) // to stop at specific position
{
[scrollingTimer invalidate];
scrollingTimer = nil;
}
scrollPoint = CGPointMake(scrollPoint.x, scrollPoint.y + 1); // makes scroll
[self.textView setContentOffset:scrollPoint animated:NO];
NSLog(@"%f %f",textView.contentSize.width , textView.contentSize.height);
}
希望它可以帮助你......
答案 1 :(得分:1)
UITextView派生自UIScrollview,因此您可以使用-setContentOffset设置滚动位置:animated:。
假设你想以每秒10点的速度平滑滚动,你会做类似的事情。
- (void) scrollStepAnimated:(NSTimer *)timer {
CGFloat scrollingSpeed = 10.0; // 10 points per second
NSTimeInterval repeatInterval = [timer timeInterval]; // ideally, something like 1/30 or 1/10 for a smooth animation
CGPoint newContentOffset = CGPointMake(self.textView.contentOffset.x, self.textView.contentOffset.y + scrollingSpeed * repeatInterval);
[self.textView setContentOffset:newContentOffset animated:YES];
}
当然你必须设置计时器,并确保在视图消失时取消滚动等等。