#import <UIKit/UIKit.h>
@interface MainViewController :UIViewController<UIScrollViewDelegate>
{
//设置滚动视图和page的属性,为了在方法中可以调用
UIScrollView * _scroll;
UIPageControl * _page;
}
@end
//控制器.m
@implementation MainViewController
-(void)dealloc
{
[superdealloc];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [superinitWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view.
//建立滚动视图
_scroll = [[UIScrollViewalloc]initWithFrame:CGRectMake(0,50, 320, 300)];
[_scrollsetBackgroundColor:[UIColorblackColor]];
//移动的大小
[_scrollsetContentSize:CGSizeMake(320*12,300)];
//从哪一张开始显示,就是一运行,显示哪一张,320,显示第二张
[_scrollsetContentOffset:CGPointMake(320,0)];
//是否按照页翻动
[_scrollsetPagingEnabled:YES];
//设置代理人
_scroll.delegate =self;
//滚动条消失 左右
[_scrollsetShowsHorizontalScrollIndicator:NO];
//上下
// [_scroll setShowsVerticalScrollIndicator:NO];
//第一张和最后一张时,不会再拖动
[_scrollsetBounces:NO];
[self.viewaddSubview:_scroll];
[_scrollrelease];
//在大得滚动视图内添加小的滚动视图,小的滚动视图内添加一张照片,是为了不影响放大缩小
for (int i =1; i < 13; i++) {
//建立添加的小视图
UIScrollView * scroll1 = [[UIScrollViewalloc]initWithFrame:CGRectMake(320*(i-1),0, 320, 300)];
NSString * name = [NSStringstringWithFormat:@"%d.jpg",i];
UIImageView * image = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:name]];
[imagesetFrame:CGRectMake(0,0, 320, 300)];
[scroll1addSubview:image];
//设置放大的大小倍数
[scroll1setMaximumZoomScale:2.0f];
[scroll1setMinimumZoomScale:0.5f];
//设置代理人
scroll1.delegate =self;
[_scrolladdSubview:scroll1];
[imagerelease];
[scroll1release];
}
//
_page = [[UIPageControlalloc]initWithFrame:CGRectMake(0,370, 320, 40)];
[_pagesetBackgroundColor:[UIColorgrayColor]];
_page.alpha =0.3;
//圆点的个数 也就是页数
[_pagesetNumberOfPages:10];
//设置事件
[_pageaddTarget:selfaction:@selector(pageAction:)forControlEvents:UIControlEventValueChanged];
//圆点的颜色
[_pagesetPageIndicatorTintColor:[UIColorblueColor]];
//现在的圆点的颜色
[_pagesetCurrentPageIndicatorTintColor:[UIColoryellowColor]];
[self.viewaddSubview:_page];
[_pagerelease];
}
//设置12张照片,第一张照片和倒数第二张一样,第二张和倒数第一张一样,这是为了翻转照片时,不产生瞬间移动
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//让圆点随着图片滚动
// [_page setCurrentPage:_scroll.contentOffset.x/320];
if (_scroll.contentOffset.x ==320*11 ) {
//当图片转到倒数第二张时,改变坐标到第二张
[_scrollsetContentOffset:CGPointMake(320,0)];
//此时page值为0
_page.currentPage =0;
}elseif(_scroll.contentOffset.x ==0 ){
//当图片转到第一张时,坐标转到倒数第二张
[_scrollsetContentOffset:CGPointMake(320*10,0)];
//此时page值为10
_page.currentPage =10;
}else{
//因为第一张显示的为第二张图片,所以page值要减去320,再除以320
_page.currentPage = (_scroll.contentOffset.x-320) /320;
}
}
-(void)pageAction:(id)sender
{
UIPageControl * page =(UIPageControl *)sender;
//让图片随着圆点滚动
[_scrollsetContentOffset:CGPointMake(page.currentPage *320 + 320, 0)];
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
//求滚动视图的子视图
NSArray * array = [scrollView subviews];
//放大的哪一张
return [array objectAtIndex:0];
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
//视图放大还原
for (UIScrollView * scroll in [scrollView subviews]) {
if ([scroll isKindOfClass:[UIScrollView class]]) {
[scroll setZoomScale:1.0f];
}
}
}