一,效果图。
二,工程图。
三,代码。
RootViewController.h
#import <UIKit/UIKit.h> @interface RootViewController : UIViewController <UIScrollViewDelegate> { UIScrollView *scoreView; } @end
RootViewController.m
#import "RootViewController.h" @interface RootViewController () @end @implementation RootViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self initBackgroundView]; } #pragma -mark -functions -(void)initBackgroundView { self.view.backgroundColor=[UIColor greenColor]; scoreView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 100, 320, 140)]; scoreView.backgroundColor=[UIColor greenColor]; scoreView.contentSize=CGSizeMake(320*3, 140); scoreView.showsVerticalScrollIndicator=NO; scoreView.showsHorizontalScrollIndicator=NO; scoreView.scrollEnabled=NO; scoreView.delegate=self; [self.view addSubview:scoreView]; for (int i=0; i<4; i++) { UIImageView* imageView=[[UIImageView alloc]initWithFrame:CGRectMake(i*320, 0, 320, 140)]; imageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]]; if (i==3) { imageView.image=[UIImage imageNamed:@"0.jpg"]; } [scoreView addSubview:imageView]; } [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timer:) userInfo:nil repeats:YES]; UIPageControl* pc = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 220, 320, 20)]; pc.numberOfPages = 3; pc.tag=100; [pc addTarget:self action:@selector(pc:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:pc]; } -(void)timer:(NSTimer *)timer{ if (scoreView.contentOffset.x==320*3) { scoreView.contentOffset=CGPointMake(0, 0); } [scoreView setContentOffset:CGPointMake(scoreView.contentOffset.x+320,0) animated:YES]; } - (void)pc:(UIPageControl*)pc{ scoreView.contentOffset=CGPointMake(pc.currentPage*320, 0); } #pragma -mark -UIScrollerViewDelegate - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ UIPageControl* pc = (UIPageControl*)[self.view viewWithTag:100]; pc.currentPage = scrollView.contentOffset.x / 320; if (scoreView.contentOffset.x==320*3) { pc.currentPage=0; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }
时间: 2024-10-25 21:42:24