iOS 利用UIScrollView实现对单个试图缩放并可以滚动

这个例子实现滚动视图,并可以对单个视图缩放

代码下载:http://pan.baidu.com/s/1nt0mZUD

MyScroolView.h

#import <UIKit/UIKit.h>

@interface MyScroolView : UIScrollView<UIScrollViewDelegate>
@property (strong , nonatomic) UIImageView* m_imageView;


@end

MyScroolView.m

//
//  MyScroolView.m
//  ScroolView例子
//
//  Created by 杜甲 on 14-3-19.
//  Copyright (c) 2014年 杜甲. All rights reserved.
//

#import "MyScroolView.h"


#define MRScreenWidth      CGRectGetWidth([UIScreen mainScreen].applicationFrame)
#define MRScreenHeight     CGRectGetHeight([UIScreen mainScreen].applicationFrame)

@implementation MyScroolView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        self.delegate = self;
        self.frame = CGRectMake(0, 0, MRScreenWidth, MRScreenHeight);
        [self initImageView];
    }
    return self;
}
-(void)initImageView
{
    self.m_imageView = [[UIImageView alloc] init];
    self.m_imageView.frame = CGRectMake(0, 0, MRScreenWidth * 2.5, MRScreenHeight * 2.5);
    [self addSubview:self.m_imageView];

    
    float minimumScale = self.frame.size.width / self.m_imageView.frame.size.width;
    [self setMinimumZoomScale:minimumScale];
    [self setZoomScale:minimumScale];
    
    
}

#pragma mark - UIScrollViewDelegate

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.m_imageView;
}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
    [scrollView setZoomScale:scale animated:NO];
}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
*/

@end

ViewController.h

#import <UIKit/UIKit.h>
#import "MyScroolView.h"

@interface ViewController : UIViewController<UIScrollViewDelegate>

@property (nonatomic, retain) UIScrollView      *scrollView;

@property (nonatomic, retain) MyScroolView  *zoomScrollView;

@end

ViewController.m

//
//  ViewController.m
//  ScroolView例子
//
//  Created by 杜甲 on 14-3-19.
//  Copyright (c) 2014年 杜甲. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    self.scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 460)];
    _scrollView.delegate = self;
    _scrollView.pagingEnabled = YES;
    _scrollView.userInteractionEnabled = YES;
    _scrollView.showsHorizontalScrollIndicator = NO;
    _scrollView.showsVerticalScrollIndicator = NO;
    [self.view addSubview:_scrollView];
   [_scrollView setContentSize:CGSizeMake(320 * 3, 460)];
    
    
    
    for (int i = 0; i < 3; i ++) {
        _zoomScrollView =[[MyScroolView alloc] init];
        CGRect frame = self.scrollView.frame;
        frame.origin.x = frame.size.width * i;
        frame.origin.y = 0;
        _zoomScrollView.frame = frame;
        _zoomScrollView.m_imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",i+1]];
        [self.scrollView addSubview:_zoomScrollView];

    }
    
    
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end






iOS 利用UIScrollView实现对单个试图缩放并可以滚动,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。