1.M在AppDelegate.h导入ViewController.h
2.V在ViewController.h定义五个控制器并创建文件,继承于UIViewCelegate
3.C中创建一个MapUIkit.h
并导入系统类
#import
导入获取经纬度类
#import
定义协议MKMapViewDelegate和CLLocationManagerDelegate
创建两个地图对象 MKMapView和CLLocationManager
- (void)viewDidLoad {
[super viewDidLoad];
//设置导航标题
self.navigationItem.title =self.provie;
//设置右侧按钮
//self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"省会定位" style:UIBarButtonItemStyleDone target:self action:@selector(YOU:)];
//实例化
self.MapView = [[MKMapView alloc] initWithFrame:self.view.frame];
//设置代理
self.MapView.delegate=self;
//设置地图样式
self.MapView.mapType = MKMapTypeStandard;
//加载视图
[self.viewaddSubview:self.MapView];
//设置按钮
UIButton *butt = [UIButton buttonWithType:UIButtonTypeCustom];
//设置
butt.frame=CGRectMake(40,600,50,50);
//添加文字
[buttsetTitle:@"当前位置" forState:UIControlStateNormal];
butt.titleLabel.font= [UIFontsystemFontOfSize:10];
//添加点击事件
[buttaddTarget:self action:@selector(dian:) forControlEvents:UIControlEventTouchUpInside];
butt.layer.masksToBounds = YES;
butt.layer.cornerRadius = 25;
butt.backgroundColor= [UIColorgreenColor];
//添加视图
[self.viewaddSubview:butt];
//实例化经纬度类
self.lomanger = [[CLLocationManager alloc] init];
//申请用户授权用户进入后台不在授权
[self.lomanger requestWhenInUseAuthorization];
}
- (void)YOU:(id)seb{
//
CLGeocoder *g = [[CLGeocoder alloc] init];
//将地址字符串转换为位置的经纬度
[ggeocodeAddressString:self.proviecompletionHandler:^(NSArray *_Nullableplacemarks,NSError*_Nullableerror) {
//获取位置随便展示在地图上
CLPlacemark*place = [placemarkslastObject];
//获取位置
CLLocation*loc =place.location;
CLLocationCoordinate2D coor = loc.coordinate;
//定位
MKPointAnnotation *anne = [[MKPointAnnotation alloc] init];
//设置挫钉
anne.coordinate= coor;
//回到主线程
dispatch_async(dispatch_get_main_queue(), ^{
//设置让地图显示区域缩小
MKCoordinateRegion rgin =MKCoordinateRegionMakeWithDistance(coor, 10, 10);
//添加到视图
[self.MapViewsetRegion:rgin];
[self.MapViewaddAnnotation:anne];
});
}];
}
//实现点击方法
- (void)dian:(id)sender{
//设置代理
self.lomanger.delegate=self;
//开始获取位置信息 调用此方法后协议中的方法才会执行
[self.lomanger startUpdatingLocation];
}
//实现代理方法
- (void)locationManager:(CLLocationManager*)manager didUpdateLocations:(NSArray *)locations{
//创建对象获取当前获取最后一个元素
CLLocation*curloc = [locationslastObject];
//创建结构体 获取经纬度
CLLocationCoordinate2D curCoor = curloc.coordinate;
self.lomanger.delegate=nil;
//输出经纬度
NSLog(@"经度%g,纬度%g",curCoor.longitude,curCoor.latitude);
//设置让地图显示区域缩小
MKCoordinateRegion rgin =MKCoordinateRegionMakeWithDistance(curCoor, 30, 30);
//设置动画并添加
[self.MapView setRegion:rgin animated:YES];
//将地址经纬度转换为字符串
CLGeocoder*Geder = [[CLGeocoderalloc]init];
//设置方法
[GederreverseGeocodeLocation:curloccompletionHandler:^(NSArray *_Nullableplacemarks,NSError*_Nullableerror) {
//创建异步队列回到主线程
dispatch_async(dispatch_get_main_queue(), ^{
//获取最后一个经纬度转换为字符串
CLPlacemark*place = [placemarksfirstObject];
//设置大头针
MKPointAnnotation *pino = [[MKPointAnnotation alloc] init];
//将获取的地址名字给大头针
pino.title= place.name;
//设置大头针的位置
pino.coordinate= curCoor;
//添加到地图上
[self.MapViewaddAnnotation:pino];
});
}];
}
//实现大头针点击事件
- (nullableMKAnnotationView*)mapView:(MKMapView*)mapView viewForAnnotation:(id)annotation{
//从MAPView找一块可用的内存
MKPinAnnotationView *kl =[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"1"];
//设置动画
kl.animatesDrop = YES;
//设置
kl.canShowCallout = YES;
//返回内容
returnkl;
}
4.在第一个文件中导入MapUIkit.h,并写协议UITableViewDelegate和UITableViewDataSource
在协议中定义五个属性
UITableView * tbv;
UIScrollView *scro;
UIPageControl *pag;
NSTimer*timer;
intk;
- (void)viewDidLoad {
// Do any additional setup after loading the view.
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"周边" style:UIBarButtonItemStylePlain target:self action:@selector(dian)];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"北京" style:UIBarButtonItemStylePlain target:self action:nil];
self.navigationController.navigationBar.backgroundColor = [UIColor yellowColor];
self.view.backgroundColor = [UIColor whiteColor];
UISearchBar * sea = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 100, 30)];
sea.placeholder =@"请输入搜索的商品";
self.navigationItem.titleView = sea;
tbv = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStyleGrouped];
tbv.dataSource = self;
tbv.delegate=self;
[self.view addSubview:tbv];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView{
return 2;
}
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{
if(section==0) {
return3;
}else{
return1;
}
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"2"];
if(!cell) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"2"];
}
if(indexPath.section==0) {
if(indexPath.row==0) {
tbv.rowHeight=200;
// 初始化滚动式图
scro= [[UIScrollViewalloc]initWithFrame:CGRectMake(0,0,self.view.frame.size.width,200)];
// 设置滚动范围
scro.contentSize = CGSizeMake(3 * self.view.frame.size.width, 0);
// 禁用弹簧效果
scro.bounces=NO;
// 禁用水平滚动
scro.showsHorizontalScrollIndicator = NO;
// 设置整页滚动
scro.pagingEnabled=YES;
// 设置代理
scro.delegate=self;
// 设置滚动图片
for(inti =0; i <3; i++){
// 设置图片数组
NSArray*arr =@[@"1",@"2",@"3"];
UIImageView*imgV = [[UIImageViewalloc]initWithFrame:CGRectMake(i *self.view.frame.size.width,0,self.view.frame.size.width,200)];
// 加载图片
imgV.image= [UIImageimageNamed:arr[i]];
// 添加到滚动视图中
[scroaddSubview:imgV];
}
// 添加到cell中
[celladdSubview:scro];
// 设置豆豆
pag= [[UIPageControlalloc]initWithFrame:CGRectMake(90,95,150,25)];
// 设置豆豆的数量
pag.numberOfPages=3;
// 设置豆豆的颜色
pag.currentPageIndicatorTintColor = [UIColor orangeColor];
pag.pageIndicatorTintColor = [UIColor whiteColor];
// 添加到单元格中
[celladdSubview:pag];
// 创建定时器
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(aaa) userInfo:nil repeats:YES];
}elseif(indexPath.row==1){
tbv.rowHeight=100;
UIImageView* ima = [[UIImageViewalloc]initWithFrame:CGRectMake(40,10,50,50)];
ima.image= [UIImageimageNamed:@"5"];
ima.layer.masksToBounds=YES;
ima.layer.cornerRadius=25;
[celladdSubview: ima];
UILabel* lab = [[UILabelalloc]initWithFrame:CGRectMake(40,70,60,20)];
lab.text=@"全部任务";
lab.font= [UIFontsystemFontOfSize:10];
[celladdSubview:lab];
UIImageView* ima1 = [[UIImageViewalloc]initWithFrame:CGRectMake(140,10,50,50)];
ima1.image= [UIImageimageNamed:@"6"];
ima1.layer.masksToBounds=YES;
ima1.layer.cornerRadius=25;
[celladdSubview: ima1];
UILabel* lab1 = [[UILabelalloc]initWithFrame:CGRectMake(140,70,60,20)];
lab1.text=@"全部任务";
lab1.font= [UIFontsystemFontOfSize:10];
[celladdSubview:lab1];
UIImageView* ima2 = [[UIImageViewalloc]initWithFrame:CGRectMake(220,10,50,50)];
ima2.image= [UIImageimageNamed:@"7"];
ima2.layer.masksToBounds=YES;
ima2.layer.cornerRadius=25;
[celladdSubview: ima2];
UILabel* lab2 = [[UILabelalloc]initWithFrame:CGRectMake(220,70,60,20)];
lab2.text=@"全部任务";
lab2.font= [UIFontsystemFontOfSize:10];
[celladdSubview:lab2];
UIImageView* ima3 = [[UIImageViewalloc]initWithFrame:CGRectMake(300,10,50,50)];
ima3.image= [UIImageimageNamed:@"8"];
ima3.layer.masksToBounds=YES;
ima3.layer.cornerRadius=25;
[celladdSubview: ima3];
UILabel* lab3 = [[UILabelalloc]initWithFrame:CGRectMake(300,70,60,20)];
lab3.text=@"全部任务";
lab3.font= [UIFontsystemFontOfSize:10];
[celladdSubview:lab3];
}else{
tbv.rowHeight=100;
UIImageView* ima = [[UIImageViewalloc]initWithFrame:CGRectMake(40,10,50,50)];
ima.image= [UIImageimageNamed:@"5"];
ima.layer.masksToBounds=YES;
ima.layer.cornerRadius=25;
[celladdSubview: ima];
UILabel* lab = [[UILabelalloc]initWithFrame:CGRectMake(40,70,60,20)];
lab.text=@"全部任务";
lab.font= [UIFontsystemFontOfSize:10];
[celladdSubview:lab];
UIImageView* ima1 = [[UIImageViewalloc]initWithFrame:CGRectMake(140,10,50,50)];
ima1.image= [UIImageimageNamed:@"6"];
ima1.layer.masksToBounds=YES;
ima1.layer.cornerRadius=25;
[celladdSubview: ima1];
UILabel* lab1 = [[UILabelalloc]initWithFrame:CGRectMake(140,70,60,20)];
lab1.text=@"全部任务";
lab1.font= [UIFontsystemFontOfSize:10];
[celladdSubview:lab1];
UIImageView* ima2 = [[UIImageViewalloc]initWithFrame:CGRectMake(220,10,50,50)];
ima2.image= [UIImageimageNamed:@"7"];
ima2.layer.masksToBounds=YES;
ima2.layer.cornerRadius=25;
[celladdSubview: ima2];
UILabel* lab2 = [[UILabelalloc]initWithFrame:CGRectMake(220,70,60,20)];
lab2.text=@"全部任务";
lab2.font= [UIFontsystemFontOfSize:10];
[celladdSubview:lab2];
UIImageView* ima3 = [[UIImageViewalloc]initWithFrame:CGRectMake(300,10,50,50)];
ima3.image= [UIImageimageNamed:@"8"];
ima3.layer.masksToBounds=YES;
ima3.layer.cornerRadius=25;
[celladdSubview: ima3];
UILabel* lab3 = [[UILabelalloc]initWithFrame:CGRectMake(300,70,60,20)];
lab3.text=@"全部任务";
lab3.font= [UIFontsystemFontOfSize:10];
[celladdSubview:lab3];
}
}else{
tbv.rowHeight=300;
UIImageView* iam = [[UIImageViewalloc]initWithFrame:CGRectMake(0,0,self.view.frame.size.width,300)];
iam.image = [UIImage imageNamed:@"屏幕快照 2018-11-15 上午10.16.48"];
[celladdSubview:iam];
}
returncell;
}
- (void)dian{
[self.navigationController pushViewController:[MapUIkit new] animated:YES];
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
// 滚动视图
- (void)scrollViewDidScroll:(UIScrollView*)scrollView{
// NSLog(@"%lf",scro.contentOffset.x);
pag.currentPage = scro.contentOffset.x/self.view.frame.size.width;
}
// 定时器
-(void)aaa{
[scro setContentOffset:CGPointMake(k * self.view.frame.size.width, 0)];
k++;
if(k>2){
k=0;
}
}
5.在第五个文件中写协议UITableViewDelegate和UITableViewDataSource
在协议中定义三个属性
UITableView * tbv;
NSArray* arr;
NSArray* imarr;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
tbv = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
tbv.dataSource = self;
tbv.delegate=self;
arr = @[@"我的包裹",@"我的包裹",@"我的包裹",@"我的包裹",@"我的包裹",@"我的包裹",@"我的包裹",@"我的包裹"];
imarr = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8"];
UIView* uiv = [[UIViewalloc]initWithFrame:CGRectMake(0,0,self.view.frame.size.width,200)];
uiv.backgroundColor = [UIColor orangeColor];
UIImageView * ima = [[UIImageView alloc]initWithFrame:CGRectMake(20, 20, 100, 100)];
ima.image= [UIImageimageNamed:@"5"];
ima.layer.masksToBounds= YES;
ima.layer.cornerRadius = 50;
UILabel * lab = [[UILabel alloc]initWithFrame:CGRectMake(180, 45, 100, 40)];
lab.text=@"12312312";
UIImageView* imag = [[UIImageViewalloc]initWithFrame:CGRectMake(0,150,self.view.frame.size.width,50)];
imag.image = [UIImage imageNamed:@"屏幕快照 2018-11-15 上午10.53.45"];
[uivaddSubview:imag];
[uivaddSubview:ima];
[uivaddSubview:lab];
tbv.tableHeaderView = uiv;
tbv.rowHeight = 40;
[self.view addSubview:tbv];
}
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{
returnarr.count;
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"2"];
if(!cell) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"2"];
}
cell.imageView.image= [UIImageimageNamed:imarr[indexPath.row]];
cell.textLabel.text=arr[indexPath.row];
UILabel * lab = [[UILabel alloc]initWithFrame:CGRectMake(350, 0, 40, 40)];
lab.text=@">";
lab.textColor= [UIColorlightGrayColor];
[celladdSubview:lab];
returncell;
}