2015 IOS 地图——在蓝懿教育 学习笔记

1,在VC中添加地图界面MKMapView(全屏)

2、选工程界面相对应的界面中倒数第二行,Build Phases选项中 选择第三个 的+号,弹出来搜索框输入mapk,选择搜索结果确认添加,此时地图能显示出来。

(3.在SB中的地图右侧选项有三个模式,(二维线路,卫星无线路,卫星有线路))

4、关联代码在vc中关联myMV。但此时并不被系统识别,此时要添加import<MapKit/MapKit.h>协议,此时就被识别了

5、此时要从网络获取到经纬度,比如天安门经纬度,

此时要用到方法——创建经纬度的结构体:

//    北纬:39.90960456049752

//    东经:116.3972282409668

***这是经纬度的结构体**

CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(39.90960456049752, 116.3972282409668);

***这是表示缩放级别***

MKCoordinateSpan span = MKCoordinateSpanMake(.001, .001);

并且此时要建立一个结构体把经纬度和缩放级别装载一起,让地图显示到制定的位置:

[self.myMV setRegion:MKCoordinateRegionMake(coord, span)];

6、在地图中添加大头针:

需要创建一个自定义的类,继承NSObject取名MyAnnotation。此时要让此类在.h中import<MapKit/MapKit.h>,并且实现一个协议:

@interface MyAnnotation : NSObject<MKAnnotation>————但是这个协议有些限制,要给其添加属性,进入协议,其中有一个必须和两个可选属性,把其三个都复制到。h中:

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

@property (nonatomic, readonly, copy) NSString *title;

@property (nonatomic, readonly, copy) NSString *subtitle;

readonly是只读的意思,不能编辑,修改,所以去掉,所以:

@property (nonatomic) CLLocationCoordinate2D coordinate;

@property (nonatomic, copy) NSString *title;

@property (nonatomic, copy) NSString *subtitle;

7、此时在VC中import myAnnotation,

在VDL中添加大头针:

MyAnnotation *ann = [[MyAnnotation alloc]init];——添加大头针的对象

ann.coordinate = coord;——这个是大头针的经纬度

ann.title = @"天安门”;——这是大头针的标题内容

ann.subtitle = @"我爱北京天安门!”;————备注内容

[self.myMV addAnnotation:ann];

————————————————————————————————————————————————————

8、添加自定义大头针:

新建一个类继承于MKAnnotationView(前提是要在sb中拖入MKMapView)

取名为MKAnnotationView

并且在sb中连线delegate线

9、在vc中添加协议

@interface ViewController ()<MKMapViewDelegate>

进入此协议,

复制出来

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{

——————复用效果

引入import”MKAnnotationView“

在方法中写入

MyAnnotationView *av = (MyAnnotationView *)这个()中是个此类型的内容[mapView dequeueReusableAnnotationViewWithIdentifier:@"ann"];

if (!av) {

av = [[MyAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"ann"];

}

return av;

}

10.在MyAnnotationView.m中初始化

- (instancetype)initWithAnnotation:(id<MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier

{

self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];

if (self) {

//修改大头针的样式

self.image = [UIImage imageNamed:@"index_map.png"];

return self;

}

此时显示完毕。

————————————————————————

注意:在此初始化方法中可以添加任意物,

11、此时还可以在其他坐标上添加其他的大头针

首先获取经纬度,

然后在vc中添加ann2

MyAnnotation *ann2 = [[MyAnnotation alloc]init];

ann2.coordinate = CLLocationCoordinate2DMake(39.8068719483, 116.4608274052);

[self.myMV addAnnotation:ann2];

12、当大头针被点击出现的事件:

进入协议中,找到方法:当显示区域发生改变时。

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{

MyAnnotation *ann2 = [[MyAnnotation alloc]init];

ann2.coordinate = mapView.centerCoordinate;(屏幕显示中央)

[self.myMV addAnnotation:ann2];

}

此时每移动一次 中央添加一个大头针

13、再进入协议中找到方法:点击选中时

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{

NSLog(@"点击了大头针");

}

1,在VC中添加地图界面MKMapView(全屏)

2、选工程界面相对应的界面中倒数第二行,Build Phases选项中 选择第三个 的+号,弹出来搜索框输入mapk,选择搜索结果确认添加,此时地图能显示出来。

(3.在SB中的地图右侧选项有三个模式,(二维线路,卫星无线路,卫星有线路))

4、关联代码在vc中关联myMV。但此时并不被系统识别,此时要添加import<MapKit/MapKit.h>协议,此时就被识别了

5、此时要从网络获取到经纬度,比如天安门经纬度,

此时要用到方法——创建经纬度的结构体:

//    北纬:39.90960456049752

//    东经:116.3972282409668

***这是经纬度的结构体**

CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(39.90960456049752, 116.3972282409668);

***这是表示缩放级别***

MKCoordinateSpan span = MKCoordinateSpanMake(.001, .001);

并且此时要建立一个结构体把经纬度和缩放级别装载一起,让地图显示到制定的位置:

[self.myMV setRegion:MKCoordinateRegionMake(coord, span)];

6、在地图中添加大头针:

需要创建一个自定义的类,继承NSObject取名MyAnnotation。此时要让此类在.h中import<MapKit/MapKit.h>,并且实现一个协议:

@interface MyAnnotation : NSObject<MKAnnotation>————但是这个协议有些限制,要给其添加属性,进入协议,其中有一个必须和两个可选属性,把其三个都复制到。h中:

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

@property (nonatomic, readonly, copy) NSString *title;

@property (nonatomic, readonly, copy) NSString *subtitle;

readonly是只读的意思,不能编辑,修改,所以去掉,所以:

@property (nonatomic) CLLocationCoordinate2D coordinate;

@property (nonatomic, copy) NSString *title;

@property (nonatomic, copy) NSString *subtitle;

7、此时在VC中import myAnnotation,

在VDL中添加大头针:

MyAnnotation *ann = [[MyAnnotation alloc]init];——添加大头针的对象

ann.coordinate = coord;——这个是大头针的经纬度

ann.title = @"天安门”;——这是大头针的标题内容

ann.subtitle = @"我爱北京天安门!”;————备注内容

[self.myMV addAnnotation:ann];

————————————————————————————————————————————————————

8、添加自定义大头针:

新建一个类继承于MKAnnotationView(前提是要在sb中拖入MKMapView)

取名为MKAnnotationView

并且在sb中连线delegate线

9、在vc中添加协议

@interface ViewController ()<MKMapViewDelegate>

进入此协议,

复制出来

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{

——————复用效果

引入import”MKAnnotationView“

在方法中写入

MyAnnotationView *av = (MyAnnotationView *)这个()中是个此类型的内容[mapView dequeueReusableAnnotationViewWithIdentifier:@"ann"];

if (!av) {

av = [[MyAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"ann"];

}

return av;

}

10.在MyAnnotationView.m中初始化

- (instancetype)initWithAnnotation:(id<MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier

{

self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];

if (self) {

//修改大头针的样式

self.image = [UIImage imageNamed:@"index_map.png"];

return self;

}

此时显示完毕。

————————————————————————

注意:在此初始化方法中可以添加任意物,

11、此时还可以在其他坐标上添加其他的大头针

首先获取经纬度,

然后在vc中添加ann2

MyAnnotation *ann2 = [[MyAnnotation alloc]init];

ann2.coordinate = CLLocationCoordinate2DMake(39.8068719483, 116.4608274052);

[self.myMV addAnnotation:ann2];

12、当大头针被点击出现的事件:

进入协议中,找到方法:当显示区域发生改变时。

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{

MyAnnotation *ann2 = [[MyAnnotation alloc]init];

ann2.coordinate = mapView.centerCoordinate;(屏幕显示中央)

[self.myMV addAnnotation:ann2];

}

此时每移动一次 中央添加一个大头针

13、再进入协议中找到方法:点击选中时

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{

NSLog(@"点击了大头针");

}

时间: 2024-12-30 01:23:30

2015 IOS 地图——在蓝懿教育 学习笔记的相关文章

2015 IOS TableView ——在蓝懿教育 学习笔记

TableView   蓝懿教育 1首先创建 UITableView *tableView = [[UITableView alloc]initWithFrame:self.view.bounds]; tableView.dataSource = self; //dataSource 是数据源 [self.view addSubview:tableView]; 2创建协议 @interface ViewController ()<</span>UITableViewDataSource&

2015 IOS 字典——在蓝懿教育 学习笔记

字典 NSMutableDictionary *dic = [NSM.. dictiongaryWithobject :@”  “ forKey:@“  “]: (实现了NSCopying的任意对象) dic setobject :@“” forKey :@“” .. @[  ]————数组的简写 注意 :字典是无序的. 创建页面跳转(用字典): 把vc 的字典搬到tvc 1.创建数组(不可变) 字典声明成属性 2.dic此时变为self.dic 3.行数self.dic.count 4.在行数

2015 IOS 制作通讯录——在蓝懿教育 学习笔记

来自蓝懿教育 学生笔记 1.删除界面中的vc,并且建立一个tablevc,在sb中创建navigation,并且关联TableView中的属性,并让箭头指向第一页面的navigation,并关联cell 2.拖拽界面view controller 建立一个personviewcontroller使之与sb中的关联, 3.在tablevc中建立左上角的加号 4.关联Personvc属性,并且在左上角加号中的事件方法中写入事件 5.删除vdidload中的多余行(留下添加右上角删除按钮代码): 6.

2015 IOS 文件管理器 ——在蓝懿教育 学习笔记

得到文件管理器   蓝懿教育 NSFileManager *fm = [NSFileManager defaultManager]; //    复制 //    [fm copyItemAtPath:@"/Users/ivan/Desktop/a.png" toPath:@"/Users/ivan/Desktop/copy/a.png" error:nil]; //    移动  移动的时候目的地不能有重名的 //    [fm moveItemAtPath:@&

2015 IOS 制作相册——在蓝懿教育 学习笔记

字典 NSMutableDictionary *dic = [NSM.. dictiongaryWithobject :@”  “ forKey:@“  “]: (实现了NSCopying的任意对象) dic setobject :@“” forKey :@“” .. @[  ]————数组的简写 注意 :字典是无序的. 创建页面跳转(用字典): 把vc 的字典搬到tvc 1.创建数组(不可变) 字典声明成属性 2.dic此时变为self.dic 3.行数self.dic.count 4.在行数

2015 IOS tabelView分组、Xib、Cell——在蓝懿教育 学习笔记

TabelView分组.表头,表尾 删除vc 搭建tvc 分组界面中return 2 分2组: 在控制行加判断 如果section== 1  return10 (此时012 0123456789) 在sb中选中tv在style右样式改成Grouped 此时有了间隔 控制分组题头和尾.有个字符串 -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ return @"我

2015 IOS 自定义cell成绩单——在蓝懿教育 学习笔记

1.sb中添加一个tv,箭头,Cell,创建tvc并关联 2.建立Student对象,在.h中建立字符串name,语数英: 3.在tvc创建数组,学生的对象, 初始化, 获取字符串和内容(txt 的文件) 分割字符串 遍历拿到每一行,拿到每一行再分割 每一行都要创建一个student, 每个学生的姓名 语数英分数 把创建好的学生对象添加到数组 4.行数,内容, 取出每行学生对象, 然后cell,textlabel.text  = .. 此时名称显示出来 5.创建tableviewCell 关联s

2015 IOS &#160;植物大战僵尸初版——在蓝懿教育 学习笔记

创建僵尸类zomb,继承UIIV 把VC的即使时间timer放到僵尸类的初始化方法中 - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];

2015 IOS IOS_UIWebView字体大小、字体颜色、背景色——在蓝懿教育 学习笔记

前段时间需要修改webView背景色,上stackoverflow搜了很久没有找到结果,百度搜索,各种转载,各种坑爹,搜出来的都只有字体大小和字体颜色,页面背景没有看到,本人发布方法,希望可以帮助到更多人 在webView的delegate回调方法-webViewDidFinishLoad:(UIWebView*)webView;中写上一下语句即可 //字体大小 [webView stringByEvaluatingJavaScriptFromString:@"document.getEleme