1.现在文件的 Build Setting 选项中将 ARC 改为 NO.
2.创建一个 MainViewController 的类.
3.将图片拖入文档.
4.在 AppDelegate.m 中做好准备工作.
#import "AppDelegate.h"
#import "MainViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (void)deallo
{
[_window release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
[_window release];
MainViewController *mainVC =[[MainViewController alloc] init];
self.window.rootViewController = mainVC;
return YES;
}
4.在 MainViewController.h 中.
#import "MainViewController.h"
// 创建两个宏定义.
#define WIDTH self.view.frame.size.width
#define HEIGHT self.view.frame.size.height
@interface MainViewController ()<UIScrollViewDelegate>
@end
@implementation MainViewController
- (void)viewDidLoad {
[super viewDidLoad]
// 它继承 UIView,可以通过创建 view 的四步对 ScrollView 进行创建.
UIScrollView *scrollV =[[UIScrollView alloc] initWithFrame:self.view.frame];
scrollV.backgroundColor = [UIColor greenColor];
[self.view addSubview:scrollV];
[scrollV release];
// 重要属性,这个属性可以让 scrollview 滚动起来.
// conteSize 设置 scrollView 的滚动范围.
scrollV.contentSize = CGSizeMake(WIDTH * 5, HEIGHT); // 因为有五张图片所以设定滚动范围为5.
// 设置按页来进行滚动.
scrollV.pagingEnabled = YES;
for (NSInteger i = 1; i < 6; i++)
{
// 找到图片的名字.
NSString *picName = [NSString stringWithFormat:@“%ld.jpg”, i];
// 通过图片的名字来创建UIImageView.
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:picName]];
imageView.frame = CGRectMake(WIDTH * (i - 1), 0, WIDTH, HEIGHT);
// 把imageView放到scrollview上
[scrollV addSubview:imageView];
[imageView release];
}
// 通过设置偏移量,可以设置默认图片的位置.
scrollV.contentOffset = CGPointMake(WIDTH * 2, 0);
// 关闭边界回弹的效果
scrollV.bounces = NO;
// 水平和垂直的滚动条会作为两个子视图添加到 scrollView 的子视图里如果把滚动条小果关闭,这两个视图就不会添加到scrollView的子视图里.
NSLog(@“%@“, scrollV.subviews);
// 关闭滚动条(水平,垂直).
scrollV.showsHorizontalScrollIndicator = NO;
scrollV.showsVerticalScrollIndicator = NO;
// 设置代理人.
scrollV.delegate = self;
// 设置tag值.
scrollV.tag = 1000;
// 创建一个计时器.
[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
}
// 只要滚动就会触发的协议方法.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@“开始滚动”);
}
// 减速停止的时候会触发的协议方法.
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@“滚动停止”);
if (scrollView.contentOffset.x == 0) {
scrollView.contentOffset = CGPointMake(WIDTH * 5, 0);
}
if (scrollView.contentOffset.x == WIDTH * 6) {
scrollView.contentOffset = CGPointMake(WIDTH * 1, 0);
}
}
// 定时改变图片切换的方法.
- (void)changeImage
{
// 通过 tag 值找 scrollview.
UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:1000];
// 通过计时器,让图片自动播放.
scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x + WIDTH, 0);
// [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x + WIDTH, 0) animated:YES];
// 连续播放.
if (scrollView.contentOffset.x == WIDTH * 6) {
scrollView.contentOffset = CGPointMake(WIDTH, 0);
}
}