图片查看器:UIScrollView的使用

此段代码来自《30天精通iPhone手机编程》,没改代码,只是添加一些注释,供自己查看!!如果哪里错了,希望看见的朋友指出!!

 

H文件

View Code
#import <UIKit/UIKit.h>

#import <Foundation/Foundation.h>
@interface Day14ViewController : UIViewController

@property (nonatomic, retain) IBOutlet UIScrollView *scrollView1;
@property (nonatomic, retain) IBOutlet UIScrollView *scrollView2;

- (void)layoutScrollImages;

@end

 

M文件

View Code
#import "Day14ViewController.h"

@implementation Day14ViewController
@synthesize scrollView1, scrollView2;

//设置图片高度、宽度以及数量
const CGFloat kScrollObjHeight    = 175.0;
const CGFloat kScrollObjWidth    = 280.0;
const NSUInteger kNumImages    = 5;

- (void)viewDidLoad {
     [super viewDidLoad];
    //设置背景颜色,UIColor颜色类
    self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];
    //申明整型,当前图片序号
    NSUInteger i;
    //循环执行,有多少张图片,执行几次
    for (i = 1; i <= kNumImages; i++){
        //图片名称,循环,得到图片名
        NSString *imageName = [NSString stringWithFormat:@"image0%d.jpg", i];
        //获取图片
        UIImage *image = [UIImage imageNamed:imageName];
        //图片显示
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
        //获取图片的框架,得到长、宽
        CGRect rect = imageView.frame;
        //设置默认高度
        rect.size.height = kScrollObjHeight;
        //设置宽度
        rect.size.width = kScrollObjWidth;
        //赋值
        imageView.frame = rect;
        imageView.tag = i;
        //ScrollView添加子视图
        [scrollView1 addSubview:imageView];
        //释放
        [imageView release];
    }
    //使用自定义方法(在下面)
    [self layoutScrollImages];    
    
    //--------------第二种方式------------------
    
//设置是否裁剪,YES表示裁剪掉,不会在Scroll外显示(只能在内部、重叠那种效果)
    scrollView2.clipsToBounds = YES;
     //设置滚动条样式
    scrollView2.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    //获取图片,选择一张比较大的
    UIImageView *imageView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"image00.jpg"]];
    //添加图片进入ScrollView
    [scrollView2 addSubview:imageView];
    //设置ScrollView的大小,这里设置为图片大小(图片比较大),实现图片在ScrollView里
    [scrollView2 setContentSize: CGSizeMake(imageView.frame.size.width, imageView.frame.size.height)];
    //设置是否滚动
    [scrollView2 setScrollEnabled:YES];
    //释放
    [imageView release];
}

//此方法作用就是改变ScrollView的图片显示
- (void)layoutScrollImages
{
    //申明一个图片显示
    UIImageView *view = nil;
    //子视图数组
    NSArray *subviews = [scrollView1 subviews];
    //初始化横坐标
    CGFloat curXLoc = 0;
    //foreach循环
    for (view in subviews)
    {
        //判定图片是否存在以及是否在范围内
        if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
        {
            //获取框架、宽高以及原点
            CGRect frame = view.frame;
            //修改原点左边(这个会变的)
            frame.origin = CGPointMake(curXLoc, 0);
            //修改后的坐标赋值
            view.frame = frame;
            //每次执行后,都增加一个宽度
            curXLoc += (kScrollObjWidth);
        }
    }
    //设置ScrollView的长度和宽度:宽为所有图片的总长度,高为图片高度
    [scrollView1 setContentSize:CGSizeMake((kNumImages * kScrollObjWidth), [scrollView1 bounds].size.height)];
}

- (void)dealloc {
    //释放
    [scrollView1 release];
    [scrollView2 release];
    [super dealloc];
}

@end

 

初学者,什么都看,看代码,没买那本书,呵呵!

posted @ 2011-10-14 11:25  Maxfong  阅读(1021)  评论(0编辑  收藏  举报