在類中什么兩個屬性
@property (nonatomic,assign) BOOL isDragging; //是否正在拖動
@property (nonatomic,strong)NSTimer *timer; //設(shè)置動畫
用作判斷是否在拖地和添加動畫
先創(chuàng)建scrollview
UIView *view4Header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kWIDTH, 100)];
UIScrollView * _scrollview=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, kWIDTH, 100)];
_scrollview.contentSize=CGSizeMake(kWIDTH*6, 100);
// _scrollview.contentOffset = CGPointMake(0, 0);
_scrollview.pagingEnabled=YES;
_scrollview.delegate=self;
_scrollview.showsHorizontalScrollIndicator = NO;
[view4Header addSubview:_scrollview];
_pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake((kWIDTH - 80)/2, view4Header.frame.size.height - 20, 80, 10)];
_pageControl.numberOfPages = 4;
_pageControl.currentPage = 0;
[view4Header addSubview:_pageControl];
//貼圖
for (int i=0; i<6; i++) {
int y=i + 5;
if (i == 5) {
y = 6;
}else if (i == 0){
y = 9;
}
UIImageView*imageView=[[UIImageView alloc]initWithFrame:CGRectMake(i*kWIDTH, 0, kWIDTH, 100)];
imageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"pic_n000%d",y]];
[_scrollview addSubview:imageView];
}
// 設(shè)置時鐘動畫 定時器
self.timer = [NSTimer scheduledTimerWithTimeInterval:2.5f target:self selector:@selector(update:) userInfo:nil repeats:YES];
// 將定時器添加到主線程
[[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
實(shí)現(xiàn)定時移動效果
- (void)update:(NSTimer *)timer{
//定時移動
CGPoint offSet = _scrollview.contentOffset;
if (_isDragging == YES) {
return ;
}
offSet.x = offSet.x + kWIDTH;
[_scrollview setContentOffset:offSet animated:YES];
if (offSet.x / kWIDTH == 5) {
[_scrollview setContentOffset:CGPointMake(0, 0)];
}
}
最后添加上ScrollView的代理方法摧茴,使其可以滑動拖動
#pragma mark - UIScrollViewDelegate
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
_isDragging = YES;
}
// 停止?jié)L動
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
float offset = _scrollview.contentOffset.x;
if (offset > kWIDTH*4) {
[_scrollview setContentOffset:CGPointMake(kWIDTH, 0)];
}
if (offset < kWIDTH) {
[_scrollview setContentOffset:CGPointMake(4*kWIDTH, 0)];
}
_isDragging = NO;
}