scrollview+pagecontrol实现滑动界面

来源:互联网 发布:现代散文鉴赏辞典知乎 编辑:程序博客网 时间:2024/05/22 17:12

//初始化scrollview

    _scrollView = [[UIScrollViewalloc]initWithFrame:(self.view.frame)];

   self.scrollView.delegate =self;

    [self.viewaddSubview:_scrollView];

    

    NSMutableArray *imageArr=[[NSMutableArrayalloc]init];

   for (int i =0;i <= (int)[self.namecount]/16;i++)

    {

        [imageArraddObject:@"555"];

    }

    CGFloat width=self.scrollView.bounds.size.width;

    CGFloat height=self.scrollView.bounds.size.height;

    

    

   for (NSInteger i=0; i<[imageArrcount]; i++) {

       UIImage *image=[UIImageimageNamed:imageArr[i]];

       UIImageView *imageView=[[UIImageViewalloc]initWithImage:image];

        [imageviewArrayaddObject:imageView];

//I*width来实现左右滑动不同的页面

        [imageViewsetFrame:CGRectMake(i*width,0, width, height)];

        [_scrollViewaddSubview:imageView];

    }

    [self.scrollViewsetBounces:NO];

    [self.scrollViewsetShowsHorizontalScrollIndicator:NO];

    [self.scrollViewsetContentSize:CGSizeMake([imageArrcount]*width, height)];

    [self.scrollViewsetPagingEnabled:YES];

    

    //初始化uipagecontrol设置大小和位置

   self.pageControl=[[UIPageControlalloc]init];

    self.pageControl.backgroundColor=[UIColorclearColor];

    [self.pageControlsetBounds:CGRectMake(0,0,200,100)];

    [self.pageControlsetCenter:CGPointMake(width/2,height/2+200.0)];

    

    //设置当前页和大小

   self.pageControl.numberOfPages=[imageArrcount];

    self.pageControl.currentPage=0;

    

    //设置当前指示和其他指示

    [self.pageControlsetCurrentPageIndicatorTintColor:[UIColorgreenColor]];

    

    [self.pageControlsetPageIndicatorTintColor:[UIColoryellowColor]];

    

    //设置滑动的时候改变UIPageControl和通过UIPageControl改变ScrollView:

    [_scrollView setDelegate:self];

    [self.pageControladdTarget:selfaction:@selector(switchPage:)forControlEvents:UIControlEventValueChanged];

    [self.viewaddSubview:_pageControl];



//滑动的时候改变UIPageControl指示,通过委托设置

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    NSInteger currentPage=scrollView.contentOffset.x/self.view.bounds.size.width;

    [self.pageControlsetCurrentPage:currentPage];

}


//UIPageControl改变ScrollView:

- (void)switchPage:(id)sender{

   UIPageControl *currentControl=(UIPageControl *)sender;

   NSInteger currentPage=currentControl.currentPage;

    [_scrollViewsetContentOffset:CGPointMake(currentPage*self.view.bounds.size.width,0)] ;

}


0 0