UIScrollView
UIScrollView可以让屏幕滚动
AppDelegate.m
#import "AppDelegate.h"
#import "RootViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor=[UIColor whiteColor];
[self.window makeKeyAndVisible];
[_window release];
RootViewController *vc=[[RootViewController alloc] init];
self.window.rootViewController=vc;
[vc release];
return YES;
}
RootViewController.h
#import "RootViewController.h"
#define HEIGHT self.view.frame.size.height
#define WIDTH self.view.frame.size.width
@interface RootViewController ()<UIScrollViewDelegate>
@end
@implementation RootViewController
- (void)viewDidLoad {
[super viewDidLoad];
//
UIScrollView *scrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT)];
scrollView.backgroundColor=[UIColor cyanColor];
[self.view addSubview:scrollView];
[scrollView release];
//非常重要的属性:只有设置他才能滚动
scrollView.contentSize=CGSizeMake(9*WIDTH, 0);
//在scrollView第一个位置
UIImageView *firstImageView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT)];
firstImageView.image=[UIImage imageNamed:@"h7.jpeg"];
[scrollView addSubview:firstImageView];
[firstImageView release];
//通过循环创建对象,然后通过scrollView上显示
for (NSInteger i = 1; i<8; i++) {
NSString *imageName=[NSString stringWithFormat:@"h%ld.jpeg",i];
UIImage *image=[UIImage imageNamed:imageName];
UIImageView *imageView=[[UIImageView alloc] initWithFrame:CGRectMake(WIDTH*i, 0, WIDTH, HEIGHT)];
imageView.image=image;
[scrollView addSubview:imageView];
[imageView release];
}
UIImageView *lastImageView=[[UIImageView alloc] initWithFrame:CGRectMake(8*WIDTH, 0, WIDTH, HEIGHT)];
lastImageView.image=[UIImage imageNamed:@"h1.jpeg"];
[scrollView addSubview:lastImageView];
[lastImageView release];
//让他可以按页滑动
scrollView.pagingEnabled=YES;
//边界回弹取消
scrollView.bounces=NO;
//设置水平和垂直的滚动条不显示
scrollView.showsHorizontalScrollIndicator=NO;
scrollView.showsVerticalScrollIndicator=NO;
//第二个非常重要的属性
//偏移量
scrollView.contentOffset=CGPointMake(WIDTH, 0);
scrollView.tag=1000;
//设置定时器让图片循环播放
// [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
scrollView.delegate=self;
}
改变图片,让他循环
-(void)changeImage{
//1.先找到对应的scrollView
UIScrollView *scrollView=(UIScrollView *)[self.view viewWithTag:1000];
//(UIScrollView *)为强制类型转换
[scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x+WIDTH, 0) animated:YES];
if (scrollView.contentOffset.x==7*WIDTH) {
scrollView.contentOffset=CGPointZero;
}
}
让7张图片划完之后,跳转到第一张,继续滑动
//滚动彻底结束的时候会触发
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"彻底结束");
if(scrollView.contentOffset.x==8*WIDTH){
scrollView.contentOffset=CGPointMake(WIDTH, 0);
}else if(scrollView.contentOffset.x==0){
scrollView.contentOffset=CGPointMake(7*WIDTH, 0);
}
}