一、
UIScrollView
的常⽤用属性
二、
UIScrollView
的常⽤用代理⽅方法
三、
UIPageControl
的使⽤用
四、
UIPageControl
与
UIScrollView
的结合使⽤用
UIScrollView:
//初始化
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];
scrollView.tag = 1001;
scrollView.backgroundColor = [UIColor redColor];
//设置一些属性
//设置显示内容的区域 显示范围
scrollView.contentSize = CGSizeMake(kScreenWidth ,kScreenHeight * 3);
//设置边界回弹的属性 默认yes
// scrollView.bounces = NO;
//设置水平回弹 竖直回弹
scrollView.showsHorizontalScrollIndicator = YES;
scrollView.showsVerticalScrollIndicator = YES;
scrollView.alwaysBounceHorizontal = YES;
scrollView.alwaysBounceVertical = YES;
// 设置scrollView是否滚动
scrollView.scrollsToTop = YES;
// 需求 让scollView 缩放 扩大
// 设置 图片缩放或扩大 峰值 缩放的倍数
scrollView.maximumZoomScale = 3.0;
scrollView.minimumZoomScale = 0.5;
// 设置代理
scrollView.delegate = self;
//
[self.view addSubview:scrollView];
[scrollView release];
//添加图片
UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];
image.tag = 1000;
image.image = [UIImage imageNamed:@"a1.jpg"];
[scrollView addSubview:image];
//添加按钮
UIButton *button = [UIButton buttonWithType:(UIButtonTypeCustom)];
button.frame = CGRectMake((kScreenWidth - 100) / 2, 100, 100, 100);
button.backgroundColor = [UIColor blueColor];
[self.view addSubview:button];
[button addTarget:self action:@selector(buttonClick:) forControlEvents:(UIControlEventTouchUpInside)];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)buttonClick:(UIButton *)button {
// 添加一个scollView动画 来测试代理方法
UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:1001];
// ContentOffset是 scrollView的重要属性
// 是scrollView的ContentOffset 这个点是距离原理(0,0)的点
// 相当于偏移量
// [scrollView setContentOffset:CGPointMake(kScreenWidth * 2, 0) animated:YES];
// 缩放复原
[scrollView setZoomScale:1.0 animated:NO];
}
// 指定缩放的视图 的子视图
// 参数scollView 是你缩放那个 就是那个scrollView
// 缩放扩大这个功能是scrollView
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
UIImageView *image = (UIImageView *)[self.view viewWithTag:1000];
return image;
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSLog(@"已经结束减速时触发");
}
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
NSLog(@"已经结束拖拽");
}
-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
NSLog(@"scrollView有动画 修改动画时触发");
}
-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale {
//缩放时手指离开触发
NSLog(@"已经结束缩放是触发");
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
// NSLog(@"只要滚动就触发");
}
-(void)scrollViewDidScrollToTop:(UIScrollView *)scrollView {
NSLog(@"点击顶部回弹时触发");
}
//设置是否 点击顶部回弹 默认yes
-(BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
return YES;
}
-(void)scrollViewDidZoom:(UIScrollView *)scrollView {
// UIImageView *imageView = (UIImageView *)[self.view viewWithTag:1000];
// imageView.center = self.view.center;NSLog(@"只要缩放就触发");
}
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
NSLog(@"将要开始减速时触发");
}
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
NSLog(@"将要开始拖拽时触发");
}
-(void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {
NSLog(@"将要开始缩放时触发");
}
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
NSLog(@"将要结束拖拽时触发23333333333333333");
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];
scrollView.tag = 1001;
scrollView.backgroundColor = [UIColor redColor];
//设置一些属性
//设置显示内容的区域 显示范围
scrollView.contentSize = CGSizeMake(kScreenWidth ,kScreenHeight * 3);
//设置边界回弹的属性 默认yes
// scrollView.bounces = NO;
//设置水平回弹 竖直回弹
scrollView.showsHorizontalScrollIndicator = YES;
scrollView.showsVerticalScrollIndicator = YES;
scrollView.alwaysBounceHorizontal = YES;
scrollView.alwaysBounceVertical = YES;
// 设置scrollView是否滚动
scrollView.scrollsToTop = YES;
// 需求 让scollView 缩放 扩大
// 设置 图片缩放或扩大 峰值 缩放的倍数
scrollView.maximumZoomScale = 3.0;
scrollView.minimumZoomScale = 0.5;
// 设置代理
scrollView.delegate = self;
//
[self.view addSubview:scrollView];
[scrollView release];
//添加图片
UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];
image.tag = 1000;
image.image = [UIImage imageNamed:@"a1.jpg"];
[scrollView addSubview:image];
//添加按钮
UIButton *button = [UIButton buttonWithType:(UIButtonTypeCustom)];
button.frame = CGRectMake((kScreenWidth - 100) / 2, 100, 100, 100);
button.backgroundColor = [UIColor blueColor];
[self.view addSubview:button];
[button addTarget:self action:@selector(buttonClick:) forControlEvents:(UIControlEventTouchUpInside)];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)buttonClick:(UIButton *)button {
// 添加一个scollView动画 来测试代理方法
UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:1001];
// ContentOffset是 scrollView的重要属性
// 是scrollView的ContentOffset 这个点是距离原理(0,0)的点
// 相当于偏移量
// [scrollView setContentOffset:CGPointMake(kScreenWidth * 2, 0) animated:YES];
// 缩放复原
[scrollView setZoomScale:1.0 animated:NO];
}
// 指定缩放的视图 的子视图
// 参数scollView 是你缩放那个 就是那个scrollView
// 缩放扩大这个功能是scrollView
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
UIImageView *image = (UIImageView *)[self.view viewWithTag:1000];
return image;
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSLog(@"已经结束减速时触发");
}
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
NSLog(@"已经结束拖拽");
}
-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
NSLog(@"scrollView有动画 修改动画时触发");
}
-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale {
//缩放时手指离开触发
NSLog(@"已经结束缩放是触发");
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
// NSLog(@"只要滚动就触发");
}
-(void)scrollViewDidScrollToTop:(UIScrollView *)scrollView {
NSLog(@"点击顶部回弹时触发");
}
//设置是否 点击顶部回弹 默认yes
-(BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
return YES;
}
-(void)scrollViewDidZoom:(UIScrollView *)scrollView {
// UIImageView *imageView = (UIImageView *)[self.view viewWithTag:1000];
// imageView.center = self.view.center;NSLog(@"只要缩放就触发");
}
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
NSLog(@"将要开始减速时触发");
}
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
NSLog(@"将要开始拖拽时触发");
}
-(void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {
NSLog(@"将要开始缩放时触发");
}
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
NSLog(@"将要结束拖拽时触发23333333333333333");
}
//============================================
UIPageControl 与 UIScrollView 的结合使⽤用
UIPageControl 与 UIScrollView 的结合使⽤用
- (void)viewDidLoad {
[super viewDidLoad];
//创建一个PageControl
//创建的时候 一定要注意给出宽度要把所有点都包含住
UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, 300 , 200)];
//设置属性
pageControl.backgroundColor = [UIColor redColor];
//设置有几个小圆点
pageControl.numberOfPages = 5;
//设置当前的原点位置
// pageControl.currentPage = 2;
//设置选中的颜色 与 未选中颜色
pageControl.pageIndicatorTintColor = [UIColor blackColor];
pageControl.currentPageIndicatorTintColor = [UIColor yellowColor];
//添加事件
[pageControl addTarget:self action:@selector(actionPageControl:) forControlEvents:(UIControlEventValueChanged)];
pageControl.userInteractionEnabled = YES;
//显示视图
[self.view addSubview:pageControl];
//释放
[pageControl release];
UIScrollView *bigScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth , kScreenHeight)];
// bigScrollView.userInteractionEnabled = YES;
//设置显示内容区域
bigScrollView.contentSize = CGSizeMake(kScreenWidth * 6, kScreenHeight);
bigScrollView.backgroundColor = [UIColor blueColor];
bigScrollView.pagingEnabled = YES;
bigScrollView.delegate = self;
[self.view addSubview:bigScrollView];
[bigScrollView release];
// NSArray *array = @[@"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg",@"5.jpg"];
for (int i = 0; i < 6; i++) {
//创建小的scrollView
UIScrollView *scrollView1 = [[UIScrollView alloc] initWithFrame:CGRectMake(kScreenWidth * i, 0 , kScreenWidth , kScreenHeight)];
scrollView1.tag = 2000 + i;
scrollView1.delegate = self;
scrollView1.maximumZoomScale = 5;
scrollView1.minimumZoomScale = 0.5;
//将小的scrollView 加到 大的scrollView
[bigScrollView addSubview:scrollView1];
[scrollView1 release];
//创建imageView加到小的scrollView上
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0 , kScreenWidth , kScreenHeight)];
imageView.tag = 1000 + i;
// imageView.image = [UIImage imageNamed:array[i]];
NSString *imageName = [NSString stringWithFormat:@"%d.jpg",i + 1];
imageView.image = [UIImage imageNamed:imageName];
//加到小的scrollView上
[scrollView1 addSubview:imageView];
[imageView release];
}
UIPageControl *pageControl1 = [[UIPageControl alloc] initWithFrame:CGRectMake(0, kScreenHeight - 100, kScreenWidth, 100)];
pageControl1.tag = 200;
//设置属性
pageControl1.numberOfPages = 6;
pageControl1.currentPage = 0;
pageControl1.currentPageIndicatorTintColor = [UIColor greenColor];
//把pageControl 加到 self.View
[self.view addSubview:pageControl1];
[pageControl1 release];
}
//指定那个ScrollView的子视图进行缩放
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
// UIImageView *imageView = (UIImageView *)[self.view viewWithTag:1000];
// return imageView;
//参数scrollView 是什么?
//缩放那个scrollView 参数就是那个scrollView
//要指定缩放的是scrollView的子视图
NSArray *array = scrollView.subviews;//取出该视图的所有子视图
return array[0];
}
- (void)actionPageControl:(UIPageControl *)pageControl {
NSLog(@"%ld", pageControl.currentPage);
}
// 已经结束减速时 更改 pageControl的当前显示位置
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
//更改 pageCotrol 当前值
UIPageControl * page = (UIPageControl *)[self.view viewWithTag:200];
page.currentPage = scrollView.contentOffset.x / kScreenWidth;
if (scrollView.contentOffset.x == kScreenWidth * 6) {
// scrollView.contentOffset.x = 0;
page.currentPage = 0;
// scrollView.contentOffset.x = 0;
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
[super viewDidLoad];
//创建一个PageControl
//创建的时候 一定要注意给出宽度要把所有点都包含住
UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, 300 , 200)];
//设置属性
pageControl.backgroundColor = [UIColor redColor];
//设置有几个小圆点
pageControl.numberOfPages = 5;
//设置当前的原点位置
// pageControl.currentPage = 2;
//设置选中的颜色 与 未选中颜色
pageControl.pageIndicatorTintColor = [UIColor blackColor];
pageControl.currentPageIndicatorTintColor = [UIColor yellowColor];
//添加事件
[pageControl addTarget:self action:@selector(actionPageControl:) forControlEvents:(UIControlEventValueChanged)];
pageControl.userInteractionEnabled = YES;
//显示视图
[self.view addSubview:pageControl];
//释放
[pageControl release];
UIScrollView *bigScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth , kScreenHeight)];
// bigScrollView.userInteractionEnabled = YES;
//设置显示内容区域
bigScrollView.contentSize = CGSizeMake(kScreenWidth * 6, kScreenHeight);
bigScrollView.backgroundColor = [UIColor blueColor];
bigScrollView.pagingEnabled = YES;
bigScrollView.delegate = self;
[self.view addSubview:bigScrollView];
[bigScrollView release];
// NSArray *array = @[@"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg",@"5.jpg"];
for (int i = 0; i < 6; i++) {
//创建小的scrollView
UIScrollView *scrollView1 = [[UIScrollView alloc] initWithFrame:CGRectMake(kScreenWidth * i, 0 , kScreenWidth , kScreenHeight)];
scrollView1.tag = 2000 + i;
scrollView1.delegate = self;
scrollView1.maximumZoomScale = 5;
scrollView1.minimumZoomScale = 0.5;
//将小的scrollView 加到 大的scrollView
[bigScrollView addSubview:scrollView1];
[scrollView1 release];
//创建imageView加到小的scrollView上
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0 , kScreenWidth , kScreenHeight)];
imageView.tag = 1000 + i;
// imageView.image = [UIImage imageNamed:array[i]];
NSString *imageName = [NSString stringWithFormat:@"%d.jpg",i + 1];
imageView.image = [UIImage imageNamed:imageName];
//加到小的scrollView上
[scrollView1 addSubview:imageView];
[imageView release];
}
UIPageControl *pageControl1 = [[UIPageControl alloc] initWithFrame:CGRectMake(0, kScreenHeight - 100, kScreenWidth, 100)];
pageControl1.tag = 200;
//设置属性
pageControl1.numberOfPages = 6;
pageControl1.currentPage = 0;
pageControl1.currentPageIndicatorTintColor = [UIColor greenColor];
//把pageControl 加到 self.View
[self.view addSubview:pageControl1];
[pageControl1 release];
}
//指定那个ScrollView的子视图进行缩放
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
// UIImageView *imageView = (UIImageView *)[self.view viewWithTag:1000];
// return imageView;
//参数scrollView 是什么?
//缩放那个scrollView 参数就是那个scrollView
//要指定缩放的是scrollView的子视图
NSArray *array = scrollView.subviews;//取出该视图的所有子视图
return array[0];
}
- (void)actionPageControl:(UIPageControl *)pageControl {
NSLog(@"%ld", pageControl.currentPage);
}
// 已经结束减速时 更改 pageControl的当前显示位置
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
//更改 pageCotrol 当前值
UIPageControl * page = (UIPageControl *)[self.view viewWithTag:200];
page.currentPage = scrollView.contentOffset.x / kScreenWidth;
if (scrollView.contentOffset.x == kScreenWidth * 6) {
// scrollView.contentOffset.x = 0;
page.currentPage = 0;
// scrollView.contentOffset.x = 0;
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}