UIScrollView的滚动使用
UIScrollView的滚动应用
首先创建项目,选择Application ,在右侧窗口中选择Singe View Application。
项目名字为UIScrollView。
如下图:
然后在UIScrollViewViewController.h中添加如下代码#import <UIKit/UIKit.h> @interface UIScrollViewViewController : UIViewController name="code" class="plain"><UIScrollViewDelegate,UIScrollViewAccessibilityDelegate> @property(nonatomic,retain) IBOutlet UIScrollView *scrollView1; @property(nonatomic,retain) IBOutlet UIScrollView *scrollView2; -(void)layoutScrollImages; @end
从SDK中拖中两个UIScrollView出来,一个放在上面(上面较大些),一个放在下面;
然后在上面个UIScrollView中按住鼠标右键拖到File's Owner 中,然后选择delegare;下面的一样;
然后从File's Owner按住鼠标右键拖到上面与下面的UIScrollView选择scrollView1与scrollView2。
如下图:
#import "UIScrollViewViewController.h" @interface UIScrollViewViewController () @end @implementation UIScrollViewViewController @synthesize scorllView1; @synthesize scorllView2; const CGFloat kScrollObjheight = 200; const CGFloat kScrollObjWidth = 320; const NSUInteger kNumImages = 6; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor]; //设置背景颜色 NSUInteger i; //申明整型,当前图片序号 for (i = 1; i <= kNumImages; i++) { NSString *imageName = [NSString stringWithFormat:@"image0%d.gif",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添加子视图 [scorllView1 addSubview:imageView]; } [self layoutScrollImages]; //设置是否裁剪,YES表示裁剪掉 scorllView2.clipsToBounds = YES; //设置滚动条样式 scorllView2.indicatorStyle = UIScrollViewIndicatorStyleWhite; //获取图片,选择一张比较大的 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image01.gif"]]; //添加图片进入ScrollView [scorllView2 addSubview:imageView]; //设置ScrollView的大小,这里设置为大小,实现图片在ScrollView [scorllView2 setContentSize:CGSizeMake (imageView.frame.size.width, imageView.frame.size.height)]; //设置是否滚动 [scorllView2 setScrollEnabled:YES]; } -(void)layoutScrollImages { //申明一个图片显示 UIImageView *view =nil; //子视图数组 NSArray *subviews = [scorllView1 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的长度和宽度 [scorllView1 setContentSize:CGSizeMake((kNumImages *kScrollObjWidth), [scorllView1 bounds].size.height)]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
最终运行结果: