• scrollview 图片放大 捏合 瓦片地图 相关注意事项


    就职文博公司要为博物馆做APP 涉及到瓦片地图的编写 在这里总结一些开发中遇到的问题 (将会不断更新 也是学习阶段)

    着急写项目的同学 可以直接看code4上现成的瓦片地图代码:http://www.code4app.com/ios/Tiled-Scroll-View/4fba3fd66803fa8413000000

    1. 首先实现利用scrollview实现图片的缩放: 需要设置

    maximumZoomScale;     // default is 1.0. must be > minimum zoom scale to enable zooming  *****只有设置了这个属性值大于1.0 才能实现缩放效果

    下面上代码

    //.h 文件
    #import <UIKit/UIKit.h>
    
    @interface HDMapView : UIScrollView <UIScrollViewDelegate>
    
    -(instancetype)initWithFrame:(CGRect)frame andContentSize:(CGSize)contentSize;
    
    -(void)setMapImage:(UIImage*)image;
    
    @end
    
    //.m 文件
    #import "HDMapView.h"
    
    @interface HDMapView ()
    
    @property(strong,nonatomic)UIImageView *myImageView;
    @end
    
    @implementation HDMapView
    
    -(instancetype)initWithFrame:(CGRect)frame andContentSize:(CGSize)contentSize
    {
        self = [super initWithFrame:frame];
        if (self) {
            
            self.maximumZoomScale=17;
            
            self.frame = frame;
            self.delegate = self;
            self.contentSize = contentSize;
                    
            self.myImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, contentSize.width, contentSize.height)];
            self.myImageView.userInteractionEnabled = YES;
            [self addSubview:self.myImageView];
            
            
            UITapGestureRecognizer *twiceTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapTwice)];
            twiceTap.numberOfTapsRequired = 2;
            twiceTap.numberOfTouchesRequired = 1;
            [self.myImageView addGestureRecognizer:twiceTap];
        }
        
        return self;
    }
    
    -(void)tapTwice
    {
        if (self.zoomScale > 3) {
            [self setZoomScale:1.0 animated:YES];
        }
        else
        {
            CGFloat a = self.zoomScale;
            a++;
            [self setZoomScale:a animated:YES];;
        }
    }
    
    -(void)setMapImage:(UIImage*)image
    {
        self.myImageView.image = image;
    }
    
    #pragma mark - UIScrollViewDelegate
    -(UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView
    {
        return self.myImageView;
    }
    
    -(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
    {
        [self setZoomScale:scale animated:YES];
    }
  • 相关阅读:
    HDU 树型dp
    NOIP模拟 Math
    HTML5本地存储LocalStorage和sessionStorage
    数据结构与算法第一章答案
    堆和队列的应用之——简单计算器
    HITCS-LAB1 Linux 下C工具的应用
    cs:app 第二章homework(已完结)
    vim使用小结(1)
    学术英语写作(1)
    linux基础(2)
  • 原文地址:https://www.cnblogs.com/ceasar/p/5241289.html
Copyright © 2020-2023  润新知