UIScrollView+UIpageControl实现图片的循环滚动切换

本文介绍了一个使用Swift实现的iOS应用中滑动视图控制器的示例代码。该控制器利用UIScrollView实现无限循环的图片轮播效果,并通过UIPageControl指示当前页面的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//

//  ViewController.m

//  ScrollView

//

//  Created by  on 15/6/1.

//  Copyright (c) 2015. All rights reserved.

//

#define kWidth [UIScreen mainScreen].bounds.size.width

#define kHeight ([UIScreen mainScreen].bounds.size.width)/2


#import "ViewController.h"


@interface ViewController ()<UIScrollViewDelegate>

{

    UIPageControl *page;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    [self _loadScroll];

}


- (void)_loadScroll{

    UIScrollView * scroll=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];

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

        UIImageView * imageView=[[UIImageView alloc]initWithFrame:CGRectMake(kWidth*(i+1), 0, kWidth, kHeight)];

        imageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i+1]];

        [scroll addSubview:imageView];

    }

    //把最后一张放在第一个位置

    UIImageView * imageView1=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];

    imageView1.image=[UIImage imageNamed:[NSString stringWithFormat:@"4.jpg"]];

    [scroll addSubview:imageView1];

    //把第一张放在最后一个位置

    UIImageView * imageView2=[[UIImageView alloc]initWithFrame:CGRectMake(kWidth*5, 0, kWidth, kHeight)];

    imageView2.image=[UIImage imageNamed:[NSString stringWithFormat:@"1.jpg"]];

    [scroll addSubview:imageView2];

    

    scroll.contentSize=CGSizeMake(kWidth*6, 0);

    scroll.showsHorizontalScrollIndicator=NO;

    scroll.pagingEnabled=YES;

    scroll.delegate=self;

    

    //让开始显示页面是第一幅图片

    CGPoint point=scroll.contentOffset;

    point.x=kWidth;

    scroll.contentOffset=point;

    [self.view addSubview:scroll];

    

    

    //设置一个页码显示的UIPageController显示当前滚动到第几个视图

    page=[[UIPageControl alloc]initWithFrame:CGRectMake(kWidth/2-100, kHeight*0.85, 200, 20)];

    page.pageIndicatorTintColor=[UIColor redColor];

    page.currentPageIndicatorTintColor=[UIColor greenColor];

    page.numberOfPages=4;

    [self.view addSubview:page];

}


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

    CGPoint point=scrollView.contentOffset;

    if(point.x<=0){

        point.x=kWidth*4;

        scrollView.contentOffset=point;

    }

    if(point.x>=5*kWidth){

        point.x=kWidth;

        scrollView.contentOffset=point;

    }

    NSInteger pages=point.x/(kWidth)-1;

    page.currentPage=pages;

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值