UIScrollView的滚动使用

UIScrollView的滚动应用

首先创建项目,选择Application ,在右侧窗口中选择Singe View Application。

项目名字为UIScrollView。

如下图:

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。

如下图: 


UIScrollView的滚动使用


然后在UIScrollViewViewViewController.m中添加如下代码


#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


最终运行结果:

UIScrollView的滚动使用