UIScrollView

来源:互联网 发布:淘宝开店需要交押金吗 编辑:程序博客网 时间:2024/04/30 12:07

1.现在文件的 Build Setting 选项中将 ARC 改为 NO.
将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);    }}
0 0