iphone之轮换效果

来源:互联网 发布:nginx 80端口被占用 编辑:程序博客网 时间:2024/05/17 19:57

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


编辑试图:



代码如下:


@interface View25 :UIViewController<UIScrollViewDelegate>

{

UIScrollView*adsScrollView;

UIPageControl*pageControl;

 

NSTimer*timer;

NSIntegerforward;

 

UIImageView*iv;

}


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

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

@property(nonatomic,retain) IBOutletUIImageView *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 = [NSURLURLWithString:@"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];

 

[adsScrollViewaddSubview: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

{

CGFloatpageWidth =adsScrollView.frame.size.width;

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

    pageControl.currentPage = page;

}



原创粉丝点击