UIPageControl . UIScrollView UIPageControl 与 UIScrollView 的结合使⽤用

一、 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的重要属性
   
//  scrollViewContentOffset 这个点是距离原理(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 的结合使⽤用
- (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];
   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值