IOS之PageControl和ScrollView搭配

//

//  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;  // pageControl18

    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也能滚动切换图片

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值