图片查看器: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
#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
@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
初学者,什么都看,看代码,没买那本书,呵呵!