源碼下載
代碼實現:
-(void)createView
{
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0 + 64, 320, 230)];
self.scrollView.backgroundColor = [UIColor yellowColor];
// 鎖定滑動方向
_scrollView.directionalLockEnabled = NO;
_scrollView.contentSize = CGSizeMake(320 * (number + 2) , 240);
// 彈跳效果
_scrollView.bounces = NO;
_scrollView.showsHorizontalScrollIndicator = NO;
_scrollView.showsVerticalScrollIndicator = NO;
_scrollView.pagingEnabled = YES;
_scrollView.delegate = self;
// scrollView 上面添加imageView
for (int i = 0; i < number + 2; i ++) {
self.testImageView = [[UIImageView alloc] initWithFrame:CGRectMake(320 * i + 3, 3 , 314 , 224)];
_testImageView.userInteractionEnabled = YES;
_testImageView.backgroundColor = [UIColor redColor];
_testImageView.tag = 100 + i;
[self.scrollView addSubview:_testImageView];
}
//初始偏移量,顯示第一張圖片
_scrollView.contentOffset = CGPointMake(320, 0);
[self.view addSubview:_scrollView];
//添加圖片
[self addImage];
self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(90, 270, 250, 15)];
self.pageControl.numberOfPages = number;
_pageControl.backgroundColor= [UIColor clearColor];
// 頁碼控制點顏色
_pageControl.pageIndicatorTintColor = [UIColor grayColor];
_pageControl.currentPageIndicatorTintColor = [UIColor cyanColor];
// pageControl 添加目標事件
[self.pageControl addTarget:self action:@selector(handlePageControlAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:self.pageControl];
[self addTimer];
self.YJFImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 235 + 64, 320, 568 - 240 - 64)];
self.YJFImageView.image = LOADIMAGE(@"背景圖", @"jpg");
[self.view addSubview:_YJFImageView];
UILabel *YJFLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 280, 60)];
YJFLabel.text = @"Email:summer2014mht@sina.com";
YJFLabel.textColor = [UIColor blackColor];
YJFLabel.textAlignment = NSTextAlignmentCenter;
YJFLabel.font = [UIFont systemFontOfSize:16];
[self.YJFImageView addSubview:YJFLabel];
}
-(void)addImage
{
for (int i = 0; i < number; i++) {
UIImageView *picImageView = (UIImageView *)[self.view viewWithTag:101+i];
picImageView.image = LOADIMAGE(self.imageNameArray[i], @"jpg");
}
UIImageView *picImageViewFirst = (UIImageView *)[self.scrollView viewWithTag:100 + number + 1];
picImageViewFirst.image = LOADIMAGE(self.imageNameArray[number - 1], @"jpg");
UIImageView *picImageViewLast = (UIImageView *)[self.scrollView viewWithTag:100 + number + 1];
picImageViewLast.image = LOADIMAGE(self.imageNameArray[0], @"jpg");
}
// pageControl 點擊相應事件
- (void)handlePageControlAction:(UIPageControl *)sender
{
NSInteger currentPage = _pageControl.currentPage;
CGPoint offsetPoint = CGPointMake(currentPage * 320, 0);
// 根據當前currentPage 滾動scrollView
[self.scrollView setContentOffset:offsetPoint animated:YES];
}
// 添加定時器, 實現輪播圖
- (void)addTimer
{
[NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(runTimer) userInfo:nil repeats:YES];
}
// 定時器響應方法
- (void)runTimer
{
CGFloat x = _scrollView.contentOffset.x;
[_scrollView setContentOffset:CGPointMake(x + 320, 0) animated:YES];
}
#pragma mark - ScrollView Delegate
//讓pageControl隨著視圖變化
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (0 == scrollView.contentOffset.x) {
[scrollView setContentOffset:CGPointMake(320 * number, 0) animated:NO];
} else if (((number + 1) * 320) == scrollView.contentOffset.x) {
[scrollView setContentOffset:CGPointMake(320, 0) animated:NO];
}
self.pageControl.currentPage = scrollView.contentOffset.x / 320 - 1;
}
-(void)customizedNavigationBar
{
self.navigationItem.title = @"輪播圖demo";
}