UIScrollView提供了一个非常方便的方法,从而不必担心屏幕大小的限制,对于用户来说是个很好的体验。
先创建一个ScrollView
UIScrollView *scroll=[[UIScrollView alloc] initWithFrame:CGRectMake(60, 20,200, 200)];
要设定contentsize:内容大小,实现滚动效果,这个尺寸必须大于刚才设置的FRAME
在ScrollView上面添加ImageView根据每个图片的大小,以及拥有几张图片设定contentsize:的尺寸
此处我使用了四张图片,宽高均为200,一共四张图,所以 [_scroll setContentSize:CGSizeMake(800, 200)];//_scroll设置为成员变量
为了一次拖拽为你设置的偏移量,在这里是200需要加下面这句话
[_scroll setPagingEnabled:YES];
UIScrollView有一个协议<UIScrollViewDelegate>
我在这里还添加了UIPageControl 为了在拖拽图片的时候下面的点点也跟着换位置,同样我也把他设置成了 成员变量
想要在拖拽图片的时候点点也变换正确的位置就要设置正确的偏移量
//控制页
_page=[[UIPageControl alloc] initWithFrame:CGRectMake(10, 250, 300,40)];
//设置几个点
[_page setNumberOfPages:4];
[_page setPageIndicatorTintColor:[UIColor blueColor]];
[_page setCurrentPageIndicatorTintColor:[UIColor whiteColor]];
[_page setBackgroundColor:[UIColor clearColor]];
//设置当前页面为1,默认是0
[_page setCurrentPage:1];
[_page addTarget:self action:@selector(dragAction:) forControlEvents: UIControlEventValueChanged ];
[self.view addSubview:_page];
[_page release];
//滚动视图正在滚动
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
//获得坐标,偏移量point
CGPoint point =scrollView.contentOffset;
//一个图片200,几个?
NSInteger current =point.x /200;
//控制页和图片连起来
_page.currentPage =current;
}
//放大缩小
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
NSArray * array = scrollView.subviews;
UIImageView *image= [array objectAtIndex:0];
return image;
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
NSLog(@"开始");
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSLog(@"结束");
};
//拖拽点点的动作
-(void)dragAction:(id)sender{
UIPageControl *page =(UIPageControl *)sender;
NSLog(@"%d",page.currentPage);
_scroll.contentOffset =CGPointMake(_page.currentPage *200, 0);
}