【代码笔记】iOS-电影上的花絮,自动滚动

一,效果图。

二,工程图。

三,代码。

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.
}
复制代码

 

原文地址:https://www.cnblogs.com/yang-guang-girl/p/5150749.html