iOS UIScrollView 和 UIPageControl的简单使用

1、在.h文件中声明UIScrollView,UIPageControl实例变量,如果不想变量被外部访问,可以在extend里声明;

@property (nonatomic,strong)UIScrollView *m_sc;

@property (nonatomic,strong)UIPageControl *m_pageC;


2、在.m文件中初始化变量m_sc和m_pageC

注:这样的初始化可以做到:变量什么时候用到,就在什么时候创建

-(UIScrollView *)m_sc

{

    if (!_m_sc)

    {

        _m_sc = [[UIScrollViewalloc]initWithFrame:CGRectMake(0,0, self.view.frame.size.width,self.view.frame.size.height)];

        [_m_scsetContentSize:CGSizeMake(self.view.frame.size.width*4,self.view.frame.size.height)];

        for (int i=0; i<4; i++)

        {

            UIView *uv = [[UIViewalloc]init];

            uv.frame =CGRectMake(self.view.bounds.size.width*i,0 , self.view.bounds.size.width,self.view.bounds.size.height) ;

            uv.backgroundColor = [UIColorcolorWithRed:i*0.1+0.5green:i*0.1+0.7blue:i*0.1+0.1alpha:1];

            UILabel *lab = [[UILabelalloc]init];

            lab.frame = CGRectMake(100, 100, 200, 50);

            lab.backgroundColor = [UIColorclearColor];

            lab.text = [@"welcome"stringByAppendingFormat:@"%d",i+1 ];

            lab.textColor=[UIColorblackColor];

            [_m_sc addSubview:uv];

        }

        _m_sc.showsHorizontalScrollIndicator =NO;

        _m_sc.showsVerticalScrollIndicator =NO;

        _m_sc.pagingEnabled =YES;

        _m_sc.scrollEnabled =YES;

        

    }

    return _m_sc;

}


-(UIPageControl *)m_pageC

{

    if (!_m_pageC)

    {

        _m_pageC = [[UIPageControlalloc]initWithFrame:CGRectMake(60,400,200 ,30)];

        _m_pageC.backgroundColor = [UIColorclearColor];

        _m_pageC.currentPageIndicatorTintColor = [UIColorredColor];

        _m_pageC.pageIndicatorTintColor = [UIColorblackColor];

        _m_pageC.numberOfPages =4;

    }

   return_m_pageC;

}


3、在视图中添加控件

[self.viewaddSubview:self.m_sc];

[self.viewaddSubview:self.m_pageC];


4、当m_sc滚动时,m_pageC也随着改变
  1)、在.h文件中添加 UIScrollViewDelegate代理
  2)、设置m_sc的代理:

     self.m_sc.delegate =self;

  3)、实现代理类的方法

    

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

{

   int size  = self.view.frame.size.width; //屏幕视图的宽度

   int page = self.m_sc.contentOffset.x/size; //根据m_sc视图的偏移量来计算当前页数

   self.m_pageC.currentPage = page;  //改变m_pageC的当前页

}


完整代码:

.h文件

@interface WelcomeViewController :UIViewController <UIScrollViewDelegate>


@end



.m文件

#import "WelcomeViewController.h"

//类的扩展

@interface WelcomeViewController ()

@property (nonatomic,strong)UIScrollView *m_sc;

@property (nonatomic,strong)UIPageControl *m_pageC;

@end


@implementation WelcomeViewController

- (void)viewDidLoad

{

    [superviewDidLoad];

    [selfbuildLayout];

}

#pragma mark

#pragma mark build interface


-(void)buildLayout

{

   self.m_sc.delegate =self;

    [self.viewaddSubview:self.m_sc];

    [self.viewaddSubview:self.m_pageC];

}


-(UIScrollView *)m_sc

{

   if (!_m_sc)

    {

        _m_sc = [[UIScrollViewalloc]initWithFrame:CGRectMake(0,0, self.view.frame.size.width,self.view.frame.size.height)];

        [_m_scsetContentSize:CGSizeMake(self.view.frame.size.width*4,self.view.frame.size.height)];

       for (int i=0; i<4; i++)

        {

           UIView *uv = [[UIViewalloc]init];

            uv.frame =CGRectMake(self.view.bounds.size.width*i,0 , self.view.bounds.size.width,self.view.bounds.size.height) ;

            uv.backgroundColor = [UIColorcolorWithRed:i*0.1+0.5green:i*0.1+0.7blue:i*0.1+0.1alpha:1];

           UILabel *lab = [[UILabelalloc]init];

            lab.frame =CGRectMake(100,100, 200, 50);

            lab.backgroundColor = [UIColorclearColor];

            lab.text = [@"welcome"stringByAppendingFormat:@"%d",i+1 ];

            lab.textColor=[UIColorblackColor];

            [uvaddSubview:lab];

            [_m_scaddSubview:uv];

        }

        _m_sc.showsHorizontalScrollIndicator =NO; //是否显示水平滚动条

        _m_sc.showsVerticalScrollIndicator =NO;//是否垂直水平滚动条

       _m_sc.pagingEnabled =YES;  //是否翻页

        _m_sc.scrollEnabled =YES;

    }

   return _m_sc;

}


-(UIPageControl *)m_pageC

{

   if (!_m_pageC)

    {

        _m_pageC = [[UIPageControlalloc]initWithFrame:CGRectMake(60,400,200 ,30)];

        _m_pageC.backgroundColor = [UIColorclearColor];

        _m_pageC.currentPageIndicatorTintColor = [UIColorredColor];

        _m_pageC.pageIndicatorTintColor = [UIColorblackColor];

       _m_pageC.numberOfPages =4;

       

    }

   return_m_pageC;

}


#pragma mark

#pragma mark UIScrollViewDelegate method

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

{

   int size  = self.view.frame.size.width;

   int page = self.m_sc.contentOffset.x/size;

   self.m_pageC.currentPage = page;

}

@end







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值