UIScrollView的循环滚动相册

之前看过网上很多关于UIScrollView的循环滚动demo,,一直看不懂,然后自己琢磨着写一个代码量比较少的,容易看懂的.以便新手学习和以后自己能看懂.

先在视图控制器中的.h文件创建UIScrollView的属性,并且写上代理

#import <UIKit/UIKit.h>

@interface MainViewController : UIViewController<UIScrollViewDelegate>
@property (nonatomic,retain)UIScrollView *scrollview;
@end
#import "MainViewController.h"

@interface MainViewController ()

@end

@implementation MainViewController
-(void)dealloc
{
[_scrollview release];
[super dealloc];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}

- (void)viewDidLoad
{
[super viewDidLoad];
_scrollview = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 100, 320, 300)];//起始scrollview的坐标
[_scrollview setPagingEnabled:YES];//让_scrollview可以翻页
_scrollview.delegate = self;//scrollview的代理
[_scrollview setPagingEnabled:YES];
[_scrollview setBounces:YES];//边框回弹
[_scrollview setContentOffset:CGPointMake(320, 0)];//设置起始偏移量,也就是第二个页面是图片的第一张.从第二个页面作为起始页面
[_scrollview setContentSize:CGSizeMake(2560, 0)];//因为我要添加6张图片,所以,需要创建8个分页效果.每页320.所以是2560
[self.view addSubview:_scrollview];//将_scrollview添加到view视图上
[self setAutomaticallyAdjustsScrollViewInsets:NO];//不加这句话循环滑动的时候imageview的大小会有变动,具体是什么不清楚.
CGFloat width = 0;//循环创建imageview.一共有六张图片,因为要前后都可以循环翻页,所以需要八张.
for (int i = 0 ; i < 8; i ++) {
UIImageView *image = [[UIImageView alloc]initWithFrame:CGRectMake(width, 10, 320, 250)];
NSString *string = [NSString stringWithFormat:@"%d.jpg",i];//给每个imageview添加图片
[image setImage:[UIImage imageNamed:string]];
if (i == 7)// i = 7表示最后一个页面,所以要和第一张的图片一样,当翻到最后一页的时候,下面会调用一个方法,跳到第一张图片的那个页面,因为跳到的页面图片和最后那页的图片一样,所以看上去就像循环滚动了一样.

{
[image setImage:[UIImage imageNamed:@"1.jpg"]];
}
if (i == 0)//同理:i = 0表示第一个页面,所以要与第六张图片一样. 因为第二个页面是起始页面,当翻回第一个页面的时候,下面会调用一个方法,将跳到第六张图片的那个页面.因为跳到的页面图片和第一页面的图片一样,所以看上去就像循环滚动了一样.
{
[image setImage:[UIImage imageNamed:@"6.jpg"]];
}
[_scrollview addSubview:image];
width += 320;
[image release];
}


// Do any additional setup after loading the view.
}

//滑动停止时调用的方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
//contentOffset.x表示偏移量,当偏移量大于6 * 320的时候,也就是翻到第七页的时候,此时的偏移量就跳到第一张图片的页面,也就是第二页
if ( _scrollview.contentOffset.x >6 * 320) {
_scrollview.contentOffset = CGPointMake(320, 0);
}
//以下同理,自己计算
if (_scrollview.contentOffset.x <= 0) {
_scrollview.contentOffset = CGPointMake(6 * 320, 0);
}

}



代码就这么多,多多看看注释,然后多练习就懂了.最重要的方法- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView,当滑动停止时调用的.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值