当前位置:编程学习 > wap >>

iOS中scrollview自动滚动的实现

.h文件
[plain]  
 @inte易做图ce Inte易做图ce1 : UIViewController {  
  
    IBOutlet UIScrollView *scroller;  
    IBOutlet UILabel *warnung;  
  
}  
  
  
@property (nonatomic, retain) IBOutlet UIScrollView* scrollView;  
 
.m文件
[plain]  
- (void)viewDidAppear:(BOOL)animated  
{  
    [super viewDidAppear:animated];  
    CGPoint bottomOffset = CGPointMake(self.scrollView.contentOffset.x, self.scrollView.contentSize.height - self.scrollView.bounds.size.height);  
    [self.scrollView setContentOffset:bottomOffset animated:NO];  
  
    CGPoint newOffset = self.scrollView.contentOffset;  
    newOffset.y = 0;  
    [self.scrollView setContentOffset:newOffset animated:YES];  
}  
  
- (void)viewDidLoad  
{  
  
    [scroller setScrollEnabled:YES];  
    [scroller setContentSize:CGSizeMake(320, 420)];  
  
        [super viewDidLoad];  
}  
 
使用setContentOffset:animated:
[plain]  
UIScrollView *scrollView = ...;  
CGPoint newOffset = scrollView.contentOffset;  
newOffset.y = 0;  
[scrollView setContentOffset:newOffset animated:YES];  
 
如果需要开场动画的效果,在scrollView的viewcontroller实现
[plain]  
- (void)viewDidLoad  
{  
    [super viewDidLoad];  
  
    // ...  
  
    CGPoint bottomOffset = CGPointMake(self.scrollView.contentOffset.x, self.scrollView.contentSize.height - self.scrollView.bounds.size.height);  
    [self.scrollView setContentOffset:bottomOffset animated:NO];  
}  
- (void)viewDidAppear:(BOOL)animated  
{  
    [super viewDidAppear:animated];  
  
    CGPoint newOffset = self.scrollView.contentOffset;  
    newOffset.y = 0;  
    [self.scrollView setContentOffset:newOffset animated:YES];  
}  
 
移动的慢点,用timer实现:
[plain]  
- (void)viewDidLoad  
{  
    [super viewDidLoad];  
  
    // ...  
  
    CGPoint bottomOffset = CGPointMake(self.scrollView.contentOffset.x, self.scrollView.contentSize.height - self.scrollView.bounds.size.height);  
    [self.scrollView setContentOffset:bottomOffset animated:NO];  
}  
  
  
- (void)viewDidAppear:(BOOL)animated  
{      
    [super viewDidAppear:animated];  
  
    CGPoint bottomOffset = CGPointMake(self.scrollView.contentOffset.x, self.scrollView.contentSize.height - self.scrollView.bounds.size.height);  
  
    //设置延迟时间  
    float scrollDurationInSeconds = 4.0;  
  
    //计算timer间隔  
  
  
    float totalScrollAmount = bottomOffset.y;  
    float timerInterval = scrollDurationInSeconds / totalScrollAmount;  
  
    [NSTimer scheduledTimerWithTimeInterval:timerInterval target:self selector:@selector(scrollScrollView:) userInfo:nil repeats:YES];  
}  
  
- (void)scrollScrollView:(NSTimer *)timer  
{  
    CGPoint newScrollViewContentOffset = self.scrollView.contentOffset;  
  
    //向上移动 1px  
    newScrollViewContentOffset.y -= 1;  
  
  
    newScrollViewContentOffset.y = MAX(0, newScrollViewContentOffset.y);  
  
    //如果到顶了,timer中止  
    if (newScrollViewContentOffset.y == 0) {  
        [timer invalidate];  
    }  
  
    //最后设置scollView's contentOffset  
    self.scrollView.contentOffset = newScrollViewContentOffset;  
}  
 
补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,