UIScrollView

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值