iphone之轮换效果

实例实现了,在一个view中,多张图片在指定时间内不断的轮换效果。


编辑试图:



代码如下:


@interface View25 :UIViewController<UIScrollViewDelegate>

{

UIScrollView *adsScrollView;

UIPageControl *pageControl;

 

NSTimer *timer;

NSInteger forward;

 

UIImageView *iv;

}


@property (nonatomic,retain) IBOutlet UIScrollView *adsScrollView;

@property (nonatomic, retain) IBOutlet UIPageControl *pageControl;

@property (nonatomic,retain) IBOutlet UIImageView *iv;

@end





-(void)viewDidLoad {

if (timer == nil)

{//定时  3秒钟触发一次

timer = [NSTimerscheduledTimerWithTimeInterval:3target:self selector:@selector(onTimer) userInfo:nilrepeats:YES];

forward = 1;

}

adsScrollView.delegate=self;


//获取远程图片 并加载

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com/img/baidu_sylogo1.gif"];

UIImage *imagea = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];

//UIImageView *iv;

iv.image=imagea;

 

   [superviewDidLoad];

 

adsScrollView.canCancelContentTouches = NO;

adsScrollView.clipsToBounds = YES;//default is NO, we want to restrict drawing within ourscrollview

adsScrollView.indicatorStyle =UIScrollViewIndicatorStyleWhite;

 

//两张图片

CGFloat page = 2;

 

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

{

//不同的图片

NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"advert0%d",i+1]ofType:@"png"];

//生成图片

UIImage *image = [UIImage imageWithContentsOfFile:path];


//继承于button  记录了按钮的id的处发事件

UIDataButton *btn = [UIDataButton buttonWithType:UIButtonTypeCustom];

//将按钮的背景设制为图片

[btnsetBackgroundImage:imageforState:UIControlStateNormal];

 

btn.frame = CGRectMake(i* adsScrollView.frame.size.width,0, adsScrollView.frame.size.width,80);

NSLog(@"%f",adsScrollView.frame.size.height);

//点击后的触发事件 id进行判断

//[btn addTarget:self action:@selector(detailBtnClick:)forControlEvents:UIControlEventTouchUpInside];

 

[adsScrollView addSubview:btn];

}

 

adsScrollView.contentSize = CGSizeMake(adsScrollView.frame.size.width *page,adsScrollView.frame.size.height);

adsScrollView.scrollEnabled = YES;

adsScrollView.showsVerticalScrollIndicator=NO;

 

pageControl.currentPage = 0;

pageControl.numberOfPages = page;

}



-(void) onTimer

{//时间定时 触发

int page = pageControl.currentPage;

if (page == (pageControl.numberOfPages -1 )) {

forward = -1;

}else {

if (page == 0) {

forward = 1;

}

}

 

 

// update the scroll view to the appropriate page

    CGRect frame = adsScrollView.frame;

    frame.origin.x = frame.size.width * (page+1*forward);

    frame.origin.y = 0;

   [adsScrollViewscrollRectToVisible:frameanimated:YES];

}


#pragma mark -

#pragma mark adsScrollView


-(void)scrollViewDidScroll:(UIScrollView *)scrollView

{

CGFloat pageWidth =adsScrollView.frame.size.width;

    int page = floor((adsScrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;

    pageControl.currentPage = page;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值