添加一组图片到工程中
// 签协议
@interface RootViewController ()<UIScrollViewDelegate>
// 设置属性
@property(nonatomic,retain)UIScrollView *scrollView;
@property(nonatomic,retain)UIPageControl *page;
@end
// 设置滚动视图
// 7张图的相册,尺寸是屏幕高的一半,宽是屏幕宽
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT/2 +100)];
self.scrollView.backgroundColor = [UIColor brownColor];
[self.view addSubview:_scrollView];
[_scrollView release];
// 滚动视图存放7张图片
self.scrollView.contentSize =CGSizeMake(7 * WIDTH, 0);
// 利用循环,将七张图片添加到滚动视图中
for (NSInteger i = 1; i < 8; i++) {
NSString *picName = [NSString stringWithFormat:@"h%ld.jpeg",i];
UIImage *image = [UIImage imageNamed:picName];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(WIDTH * (i - 1), 0, WIDTH, HEIGHT/2 + 100)];
imageView.image = image;
[self.scrollView addSubview:imageView];
[imageView release];
}
// 设置在拖拽图片的时候是否锁定,如果是NO,会出现拖拽一张,滚动好几张的情况
self.scrollView.pagingEnabled = YES;
// 设置是否回弹.如果是YES,首张图片和尾图片在拖拽时会回弹,露出底下的scrollView的颜色
self.scrollView.bounces = NO;
// 设置水平下划线.YES出现,NO隐藏
self.scrollView.showsHorizontalScrollIndicator = NO;
// 设置垂直的下划线(图片拖动时的划线)
self.scrollView.showsVerticalScrollIndicator = NO;
// 设置滚动视图下面的滑动图
self.page = [[UIPageControl alloc] initWithFrame:CGRectMake(120, HEIGHT/2 + 100, 150, 50)];
self.page.backgroundColor = [UIColor redColor];
[self.view addSubview:self.page];
[_page release];
// 与图片张数对应
self.page.numberOfPages = 7;
// 所有页面点的颜色
self.page.pageIndicatorTintColor = [UIColor blackColor];
// 当前页面点的颜色
self.page.currentPageIndicatorTintColor = [UIColor greenColor];
// 点击pagecontrol,改变偏移量
// 通过偏移量,实现图片滑动,滑动图上得点也跟着动
[self.page addTarget:self action:@selector(click:) forControlEvents:UIControlEventValueChanged];
// 设置协议代理人
self.scrollView.delegate = self;
// 设置最大缩放比例
self.scrollView.maximumZoomScale = 2;
// 设置最小缩放比例
self.scrollView.minimumZoomScale = 0.5;
// 控制缩放的方法
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
UIView *view = scrollView.subviews[(NSInteger)scrollView.contentOffset.x / (NSInteger)WIDTH];
// 只要进行缩放,系统就会修改ScrollView的contentSize的值,所以当缩小之后,没有办法再进行拖拽
NSLog(@"%g",scrollView.contentSize.width);
return view;
}
- (void)click:(UIPageControl *)page{
// 偏移量
self.scrollView.contentOffset = CGPointMake(WIDTH * page.currentPage, 0);
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
_page.currentPage = self.scrollView.contentOffset.x / WIDTH;
}