//
// ScrollViewController.m
// Scroll
//
// Created by book mac on 13-1-20.
// Copyright (c) 2013年 __【liric】__. All rights reserved.
//
#import "ScrollViewController.h"
@implementation ScrollViewController
@synthesize myscrollview,mypagecontrol,array;
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
int pageCount =3; // 设置页面数
float pageControlHeight = 18.0; // 设置pageControl高度
CGRect myscroll = CGRectMake(0, 0, 320, 260);
myscroll.size.height = myscroll.size.height - pageControlHeight;
myscrollview = [[UIScrollView alloc] initWithFrame:myscroll];// 初始化myscrollview
myscrollview.pagingEnabled = YES; //是否翻页
myscrollview.backgroundColor = [UIColor redColor]; // myscrollview 背景红色
myscrollview.showsVerticalScrollIndicator = NO; // 垂直方向的滚动指示器
myscrollview.showsHorizontalScrollIndicator = NO;// 水平方向的滚动指示器
myscrollview.indicatorStyle = UIScrollViewIndicatorStyleBlack;// 滚动指示器的风格
// myscrollview.directionalLockEnabled = YES; // 只能一个方向滑动
myscrollview.contentSize = CGSizeMake(myscrollview.frame.size.width*pageCount, myscrollview.frame.size.height); // 滚动区域,三个页面的宽度
myscrollview.delegate = self; // 委托,引用UIScrollViewDelegate协议
CGRect pagerect = [self.view bounds];
pagerect.size.height = pageControlHeight; // pageControl高18
pagerect.origin.y = myscroll.size.height; // x=0,y坐标即myscroll的高
mypagecontrol = [[UIPageControl alloc]initWithFrame:pagerect]; // 初始化mypagecontrol
mypagecontrol.backgroundColor = [UIColor blackColor]; // mypagecontrol 背景黑色
mypagecontrol.numberOfPages = pageCount;// 页面数为3
mypagecontrol.currentPage = 0; // 当前默认0为第一页
[mypagecontrol addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged]; // 触摸mypagecontrol触发change这个方法事件
[self.view addSubview:myscrollview];
[self.view addSubview:mypagecontrol];
NSMutableArray * imgArr = [[NSMutableArray alloc]initWithObjects:
[UIImage imageNamed:@"1933_1.jpg"],
[UIImage imageNamed:@"1933_2.jpg"],
[UIImage imageNamed:@"1933_3.jpg"],
nil]; // 数组放三张图片
self.array = imgArr;
for (int i =0; i<[array count]; i++)
{
[self loadScrollViewWithPage:i]; // 遍历数组
}
}
- (void)loadScrollViewWithPage:(int)index
{
UIImageView * view = [[UIImageView alloc]initWithImage:[self.array objectAtIndex:index]]; // UIImageView 初始化,存放数组里的图片
int pagecount = [[myscrollview subviews] count]; // 统计页面数
CGRect rect = myscrollview.frame;
rect.origin.y=0; // y 坐标不变
rect.origin.x=myscrollview.frame.size.width*pagecount; // x坐标 改变
view.frame=rect;
[myscrollview addSubview:view];
}
- (void)change:(id)sender
{
int page = mypagecontrol.currentPage; // 获取当前的page
CGRect frame = myscrollview.frame;
frame.origin.y = 0; // y 坐标不变
frame.origin.x = frame.size.width*page; // x 坐标改变
[myscrollview scrollRectToVisible:frame animated:YES]; // 滚动切换图片,动画效果
}
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
CGFloat pagewidth = myscrollview.frame.size.width;
int page = floor((myscrollview.contentOffset.x - pagewidth/2)/pagewidth)+1;
mypagecontrol.currentPage = page; // 触摸pageControl也能滚动切换图片
}