就職文博公司要為博物館做APP 涉及到瓦片地圖的編寫 在這裡總結一些開發中遇到的問題 (將會不斷更新 也是學習階段) 著急寫項目的同學 可以直接看code4上現成的瓦片地圖代碼:http://www.code4app.com/ios/Tiled-Scroll-View/4fba3fd66803fa8
就職文博公司要為博物館做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]; }