就职文博公司要为博物馆做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=; self.frame = frame;
self.delegate = self;
self.contentSize = contentSize; self.myImageView = [[UIImageView alloc]initWithFrame:CGRectMake(, , contentSize.width, contentSize.height)];
self.myImageView.userInteractionEnabled = YES;
[self addSubview:self.myImageView]; UITapGestureRecognizer *twiceTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapTwice)];
twiceTap.numberOfTapsRequired = ;
twiceTap.numberOfTouchesRequired = ;
[self.myImageView addGestureRecognizer:twiceTap];
} return self;
} -(void)tapTwice
{
if (self.zoomScale > ) {
[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];
}
04-18 17:31