美文网首页
五、iWatch常用控件基本用法之地图

五、iWatch常用控件基本用法之地图

作者: Dosun | 来源:发表于2017-03-08 15:05 被阅读1368次

    WKInterfaceMapr提供 一个非交互的地图为你本地自定义,在interface controller中,地图必须设置成动态,用WKInterfaceMap方法,去自定义地图可视化的区域,增加大头针和POI,点击苹果表上的地图并展示相对应的位置。

    一、简介

    伴随着地图对象,可展现定义地理区域和地图上增加大头针。大头针图像是在地图视图上,可以自定图片和展示系统自带的图片,地图一次不能展示5个大头针一定不能用代码实例化对象,而是将控件定义在storyboard中,然后从storyboard中拉线到controller中,如下面Listing 1的格式。
    Code Listing 1

    @property (weak, nonatomic) IBOutlet WKInterfaceMap* myMap;
    

    当实例化 interface controller时,WatchKit已经创建一个新的interface controller对象和为myMap初始化。你就可以在 awakeWithContext:方法中修改地图;此时iWatch 要联网才能加载地图

    二、常用属性和方法

    @interface WKInterfaceMap : WKInterfaceObject
    
    //设置可视化的地图
    - (void)setVisibleMapRect:(MKMapRect)mapRect;
    
    //设置地带
    - (void)setRegion:(MKCoordinateRegion)coordinateRegion;
    
    //增加大头针 自定义图片,图片没有缓存
    - (void)addAnnotation:(CLLocationCoordinate2D)location withImage:(nullable UIImage *)image centerOffset:(CGPoint)offset;
    
    //增加大头针,图片有缓存
    - (void)addAnnotation:(CLLocationCoordinate2D)location withImageNamed:(nullable NSString *)name centerOffset:(CGPoint)offset;
    
    //增加大头针  系统自带和
    - (void)addAnnotation:(CLLocationCoordinate2D)location withPinColor:(WKInterfaceMapPinColor)pinColor;
    
    //移除所有的大头针
    - (void)removeAllAnnotations;
    
    @end
    

    三、用法

    添加大头针,只能增加5个。另外模拟器不能显示地图,请使用真机。模拟器不支持显示地图,请参考;

    @interface InterfaceController()
    
    @property (unsafe_unretained, nonatomic) IBOutlet WKInterfaceMap *map;
    
    @end
    
    
    @implementation InterfaceController
    
    - (void)awakeWithContext:(id)context {
        [super awakeWithContext:context];
        
        //设置中心点位置
        CLLocationCoordinate2D center = CLLocationCoordinate2DMake(30, 120);
        
        //设置跨度
        MKCoordinateSpan span = MKCoordinateSpanMake(0.01, 0.01);
        
        //设置地图区域
        MKCoordinateRegion region = MKCoordinateRegionMake( center, span);
        
        //添加大头针 系统自带的
        [self.map addAnnotation:center withPinColor:WKInterfaceMapPinColorRed];
        
        //添加大头针,添加图片
    //    [self.map addAnnotation:center withImageNamed:@"4" centerOffset:CGPointMake(0, 0)];
        
        [self.map setRegion:region];
        
        // Configure interface objects here.
    }
    

    下图是代码生成的界面。


    Snip20170308_35.png

    Over , Thanks!

    相关文章

      网友评论

          本文标题:五、iWatch常用控件基本用法之地图

          本文链接:https://www.haomeiwen.com/subject/bbmmgttx.html