|
|
|
//
|
|
|
|
// MapViewController.m
|
|
|
|
// LekangGuard
|
|
|
|
//
|
|
|
|
// Created by ecell on 2022/9/27.
|
|
|
|
//
|
|
|
|
|
|
|
|
#import "MapViewController.h"
|
|
|
|
#import "GDMapView.h"
|
|
|
|
#import "GoogleMapView.h"
|
|
|
|
#import "MarkExplainViewController.h"
|
|
|
|
#import "ElectronicFenceViewController.h"
|
|
|
|
#import "TrackViewController.h"
|
|
|
|
#import "SLMarqueeControl.h"
|
|
|
|
#import "MapBtnTableViewCell.h"
|
|
|
|
|
|
|
|
|
|
|
|
@interface MapViewController ()
|
|
|
|
|
|
|
|
@property (nonatomic ,strong) UIView *topView;
|
|
|
|
|
|
|
|
@property (nonatomic ,strong) UIView *bottomView;
|
|
|
|
|
|
|
|
/// 设备名称
|
|
|
|
@property (nonatomic ,weak) UILabel *nameLabel;
|
|
|
|
|
|
|
|
/// 电量Img
|
|
|
|
@property (nonatomic ,weak) UIImageView *batteryImg;
|
|
|
|
|
|
|
|
/// 电量Label
|
|
|
|
@property (nonatomic ,weak) UILabel *batteryLabel;
|
|
|
|
|
|
|
|
/// 状态Img
|
|
|
|
@property (nonatomic ,weak) UIImageView *statusImg;
|
|
|
|
|
|
|
|
/// 状态Label
|
|
|
|
@property (nonatomic ,weak) UILabel *statusLabel;
|
|
|
|
|
|
|
|
/// 定位图片
|
|
|
|
@property (nonatomic ,weak) UIImageView *mapImg;
|
|
|
|
|
|
|
|
// 定位地址内容标题
|
|
|
|
@property (weak, nonatomic) SLMarqueeControl *marqueeControl;
|
|
|
|
|
|
|
|
/// 位置
|
|
|
|
@property (nonatomic ,weak) UILabel *addLabel;
|
|
|
|
|
|
|
|
/// 高德地图
|
|
|
|
@property (nonatomic ,strong) GDMapView *gdMapView;
|
|
|
|
|
|
|
|
/// 谷歌地图
|
|
|
|
@property (nonatomic ,strong) GoogleMapView *googleMapView;
|
|
|
|
|
|
|
|
/// 地图模式切换View
|
|
|
|
@property (nonatomic ,strong) UIView *mapSwitchView;
|
|
|
|
|
|
|
|
@property (nonatomic ,strong) CommonTableView *btnTableView;
|
|
|
|
|
|
|
|
@property (nonatomic ,strong) NSMutableArray *cellTitleArr;
|
|
|
|
@property (nonatomic ,strong) NSMutableArray *cellImageArr;
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
@implementation MapViewController
|
|
|
|
|
|
|
|
- (void)viewDidLoad {
|
|
|
|
[super viewDidLoad];
|
|
|
|
// Do any additional setup after loading the view.
|
|
|
|
self.view.backgroundColor = KKBackgroundGrey;
|
|
|
|
[MAMapView updatePrivacyShow:AMapPrivacyShowStatusDidShow privacyInfo:AMapPrivacyInfoStatusDidContain];
|
|
|
|
[MAMapView updatePrivacyAgree:AMapPrivacyAgreeStatusDidAgree];
|
|
|
|
[AMapSearchAPI updatePrivacyShow:(AMapPrivacyShowStatusDidShow) privacyInfo:(AMapPrivacyInfoStatusDidContain)];
|
|
|
|
|
|
|
|
self.zx_navLeftBtn.titleLabel.font = FontBoldADA_(18);
|
|
|
|
[self.zx_navLeftBtn setTitleColor:KKWhiteColorColor forState:0];
|
|
|
|
|
|
|
|
[self zx_setRightBtnWithImg:ImageName_(@"icon_switch_devices") clickedBlock:^(ZXNavItemBtn * _Nonnull btn) {
|
|
|
|
[self isMapShowMenu];
|
|
|
|
}];
|
|
|
|
//[self.cellTitleArr addObject:@"学生证短信"];
|
|
|
|
[self.cellTitleArr addObject:@"定位模式"];
|
|
|
|
[self.cellTitleArr addObject:@"定位说明"];
|
|
|
|
//[self.cellTitleArr addObject:@"定位纠偏"];
|
|
|
|
// [self.cellImageArr addObject:@"icon_watch_sms"];
|
|
|
|
[self.cellImageArr addObject:@"icon_map_mode"];
|
|
|
|
[self.cellImageArr addObject:@"icon_explain"];
|
|
|
|
// [self.cellImageArr addObject:@"icon_correction"];
|
|
|
|
|
|
|
|
[self.view addSubview:self.gdMapView];
|
|
|
|
[self.view addSubview:self.topView];
|
|
|
|
[self.view addSubview:self.bottomView];
|
|
|
|
[self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.left.right.equalTo(self.view).inset(10);
|
|
|
|
make.bottom.equalTo(self.view.mas_bottom).inset(10);
|
|
|
|
make.height.mas_equalTo(136);
|
|
|
|
}];
|
|
|
|
|
|
|
|
[self.view addSubview:self.btnTableView];
|
|
|
|
[self.view addSubview:self.mapSwitchView];
|
|
|
|
[self.mapSwitchView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.right.equalTo(self.view.mas_right).inset(85);
|
|
|
|
make.bottom.equalTo(self.bottomView.mas_top).inset(5);
|
|
|
|
make.size.mas_equalTo(CGSizeMake(80, 90));
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:@"updateBatteryAndLocation" object:nil] subscribeNext:^(NSNotification *x){
|
|
|
|
[self UpdataLatestlocation:APIManager.sharedManager.deviceModel.imei];
|
|
|
|
}];
|
|
|
|
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:@"deviceNowLocation" object:nil] subscribeNext:^(NSNotification *x)
|
|
|
|
{
|
|
|
|
[self UpdataLatestlocation:APIManager.sharedManager.deviceModel.imei];
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/// 点击切换设备
|
|
|
|
- (void)isMapShowMenu
|
|
|
|
{
|
|
|
|
WeakSelf
|
|
|
|
[DeviceSwitchover.sharedManager showMenuViewWithAdd:NO ];
|
|
|
|
[DeviceSwitchover.sharedManager setSwitchDevice:^(NSInteger index) {
|
|
|
|
DeviceModel *model = APIManager.sharedManager.deviceList[index];
|
|
|
|
APIManager.sharedManager.deviceModel = model;
|
|
|
|
[APIManager.sharedManager.cache setObject:model forKey:sDeviceKey];
|
|
|
|
[weakSelf UpdataLatestlocation:model.imei];
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- (GDMapView *)gdMapView
|
|
|
|
{
|
|
|
|
if (!_gdMapView)
|
|
|
|
{
|
|
|
|
_gdMapView = [[GDMapView alloc] initWithFrame:CGRectMake(0, iPhoneX_NavHeight, SCREEN_WIDTH, SCREEN_HEIGHT-iPhoneX_NavHeight)];
|
|
|
|
}
|
|
|
|
return _gdMapView;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (GoogleMapView *)googleMapView
|
|
|
|
{
|
|
|
|
if (!_googleMapView)
|
|
|
|
{
|
|
|
|
_googleMapView = [[GoogleMapView alloc] initWithFrame:CGRectMake(0, self.topView.bottom, SCREEN_WIDTH, SCREEN_HEIGHT-self.topView.bottom)];
|
|
|
|
}
|
|
|
|
return _googleMapView;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
- (UIView *)topView
|
|
|
|
{
|
|
|
|
if (!_topView)
|
|
|
|
{
|
|
|
|
_topView = [UICommon ui_view:CGRectZero backgroundColor:KKWhiteColorColor cornerRadius:Adapted(12.5) borderWidth:0 borderColor:KKWhiteColorColor];
|
|
|
|
_topView.frame = CGRectMake(10, iPhoneX_NavHeight+6, SCREEN_WIDTH-20, Adapted(25));
|
|
|
|
|
|
|
|
UIImageView *locationTypeImageView = [UIImageView new];
|
|
|
|
self.mapImg = locationTypeImageView;
|
|
|
|
[_topView addSubview:locationTypeImageView];
|
|
|
|
[locationTypeImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.left.equalTo(_topView).offset(13);
|
|
|
|
make.centerY.equalTo(_topView);
|
|
|
|
make.size.mas_equalTo(CGSizeMake(15, 15));
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
|
|
/// 位置跑马灯
|
|
|
|
SLMarqueeControl *control = [[SLMarqueeControl alloc] initWithFrame:CGRectMake(38, 5, SCREEN_WIDTH-20-38-15, 15)];
|
|
|
|
control.backgroundColor = KKClearColor;
|
|
|
|
control.marqueeLabel.text = @"当前位置未知,请确保设备开机且能够联网,再点击定位按钮进行定位";
|
|
|
|
self.marqueeControl = control;
|
|
|
|
[_topView addSubview:control];
|
|
|
|
}
|
|
|
|
return _topView;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
- (void)viewDidAppear:(BOOL)animated
|
|
|
|
{
|
|
|
|
[super viewDidAppear:animated];
|
|
|
|
LatestLocationModel *model = APIManager.sharedManager.laloModel;
|
|
|
|
[self UpdataMapViewLocation:model];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#pragma mark 主动请求位置下发
|
|
|
|
/// 主动请求位置下发
|
|
|
|
- (void)GetLatest
|
|
|
|
{
|
|
|
|
NSString *imei = APIManager.sharedManager.deviceModel.imei;
|
|
|
|
[UICommon MessageUpload:@"定位中"];
|
|
|
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
|
|
|
|
[[[APIManager sharedManager] APGET:F(@"%@/%@", Latest_location_app_instructions_URL,imei) parameters:parameters resultClass:nil] subscribeNext:^(id _Nullable x) {
|
|
|
|
|
|
|
|
|
|
|
|
NSLog(@"-->%@",x);
|
|
|
|
} error:^(NSError * _Nullable error) {
|
|
|
|
NSDictionary *dic = error.userInfo;
|
|
|
|
[UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]];
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#pragma mark 获取设备最新位置信息(推送时使用)
|
|
|
|
/// 获取设备最新位置信息(推送时使用)
|
|
|
|
- (void)UpdataLatestlocation:(NSString *)imei
|
|
|
|
{
|
|
|
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
|
|
|
|
[[[APIManager sharedManager] APGET:F(@"%@/%@", Latest_location_app_URL,imei) parameters:parameters resultClass:LatestLocationModel.class] subscribeNext:^(LatestLocationModel *model) {
|
|
|
|
[UICommon HidenLoading];
|
|
|
|
[self UpdataMapViewLocation:model];
|
|
|
|
NSLog(@"-->%@",model);
|
|
|
|
} error:^(NSError * _Nullable error) {
|
|
|
|
NSDictionary *dic = error.userInfo;
|
|
|
|
[UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]];
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
- (void)UpdataMapViewLocation:(LatestLocationModel *)model
|
|
|
|
{
|
|
|
|
self.gdMapView.laloModel = model;
|
|
|
|
if(model)
|
|
|
|
{
|
|
|
|
self.mapImg.image = ImageName_(@"home_icon_gps");
|
|
|
|
self.marqueeControl.marqueeLabel.text = model.addr;
|
|
|
|
self.marqueeControl.marqueeLabel.textColor = KKGrey133;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
self.mapImg.image = ImageName_(@"home_icon_gps_inaccurate");
|
|
|
|
self.marqueeControl.marqueeLabel.text = @"当前位置未知,请确保设备开机且能够联网,再点击定位按钮进行定位";
|
|
|
|
self.marqueeControl.marqueeLabel.textColor = RGB(249, 107, 87);
|
|
|
|
}
|
|
|
|
self.nameLabel.text = APIManager.sharedManager.deviceModel.name;
|
|
|
|
[self.zx_navLeftBtn setTitle:APIManager.sharedManager.deviceModel.name forState:0];
|
|
|
|
self.statusImg.image = APIManager.sharedManager.deviceModel.onlineStatus ? ImageName_(@"icon_device_connected") : ImageName_(@"icon_device_unconnected");
|
|
|
|
self.statusLabel.text = APIManager.sharedManager.deviceModel.onlineStatus ? @"已连接" : @"未连接";
|
|
|
|
NSInteger battery = model.battery;
|
|
|
|
NSString *imageName = @"";
|
|
|
|
if(battery == 0)
|
|
|
|
imageName = @"battery_0";
|
|
|
|
else if (battery < 10)
|
|
|
|
imageName = @"battery_low";
|
|
|
|
else if (battery < 20)
|
|
|
|
imageName = @"battery_1";
|
|
|
|
else if (battery < 30)
|
|
|
|
imageName = @"battery_2";
|
|
|
|
else if (battery < 40)
|
|
|
|
imageName = @"battery_3";
|
|
|
|
else if (battery < 50)
|
|
|
|
imageName = @"battery_4";
|
|
|
|
else if (battery < 60)
|
|
|
|
imageName = @"battery_4";
|
|
|
|
else if (battery < 70)
|
|
|
|
imageName = @"battery_6";
|
|
|
|
else if (battery < 80)
|
|
|
|
imageName = @"battery_7";
|
|
|
|
else if (battery < 90)
|
|
|
|
imageName = @"battery_8";
|
|
|
|
else if (battery < 100)
|
|
|
|
imageName = @"battery_9";
|
|
|
|
else
|
|
|
|
imageName = @"battery_10";
|
|
|
|
|
|
|
|
self.batteryImg.image = ImageName_(imageName);
|
|
|
|
self.batteryLabel.text = [NSString stringWithFormat:@"%ld%%",battery];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
- (UIView *)bottomView
|
|
|
|
{
|
|
|
|
if (!_bottomView)
|
|
|
|
{
|
|
|
|
_bottomView = [UICommon ui_view:CGRectZero backgroundColor:KKWhiteColorColor cornerRadius:10 borderWidth:0 borderColor:KKWhiteColorColor];
|
|
|
|
|
|
|
|
UILabel *nameLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontBoldADA_(14) textColor:KKTextBlackColor text:@"" Radius:0];
|
|
|
|
self.nameLabel = nameLabel;
|
|
|
|
[_bottomView addSubview:nameLabel];
|
|
|
|
[nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.left.equalTo(_bottomView).offset(20);
|
|
|
|
make.top.equalTo(_bottomView).offset(19);
|
|
|
|
}];
|
|
|
|
|
|
|
|
/// 电量图片
|
|
|
|
UIImageView *batteryImg = [UIImageView new];
|
|
|
|
self.batteryImg = batteryImg;
|
|
|
|
[_bottomView addSubview:batteryImg];
|
|
|
|
[batteryImg mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.left.equalTo(nameLabel.mas_left);
|
|
|
|
make.top.equalTo(nameLabel.mas_bottom).offset(15);
|
|
|
|
make.size.mas_equalTo(CGSizeMake(24.5, 10));
|
|
|
|
}];
|
|
|
|
|
|
|
|
/// 电量
|
|
|
|
UILabel *batteryLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:Font_(12) textColor:KKTextBlackColor text:@"" Radius:0];
|
|
|
|
self.batteryLabel = batteryLabel;
|
|
|
|
[_bottomView addSubview:batteryLabel];
|
|
|
|
[batteryLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.left.equalTo(batteryImg.mas_right).offset(10);
|
|
|
|
make.centerY.equalTo(batteryImg.mas_centerY);
|
|
|
|
}];
|
|
|
|
|
|
|
|
/// 状态图片
|
|
|
|
UIImageView *statusImg = [UIImageView new];
|
|
|
|
self.statusImg = statusImg;
|
|
|
|
[_bottomView addSubview:statusImg];
|
|
|
|
[statusImg mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.left.equalTo(batteryLabel.mas_right).offset(35);
|
|
|
|
make.centerY.equalTo(batteryImg.mas_centerY);
|
|
|
|
make.size.mas_equalTo(CGSizeMake(15, 15));
|
|
|
|
}];
|
|
|
|
|
|
|
|
/// 状态
|
|
|
|
UILabel *statusLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:Font_(12) textColor:KKTextBlackColor text:@"" Radius:0];
|
|
|
|
self.statusLabel = statusLabel;
|
|
|
|
[_bottomView addSubview:statusLabel];
|
|
|
|
[statusLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.left.equalTo(statusImg.mas_right).offset(10);
|
|
|
|
make.centerY.equalTo(batteryImg.mas_centerY);
|
|
|
|
}];
|
|
|
|
|
|
|
|
CGFloat ww = (SCREEN_WIDTH-40-20-100)/2;
|
|
|
|
|
|
|
|
CGFloat wws = SCREEN_WIDTH-90-(ww*2);
|
|
|
|
NSArray *titleArr = @[@"历史轨迹",@"电子围栏",@""];
|
|
|
|
NSArray *imageArr = @[@"icon_history",@"icon_fence",@"icon_more"];
|
|
|
|
|
|
|
|
for (int i = 0; i < titleArr.count; i++)
|
|
|
|
{
|
|
|
|
UIButton *button = [UICommon ui_buttonSimple:CGRectZero font:FontBoldADA_(12) normalColor:KKTextBlackColor normalText:titleArr[i] click:^(UIButton *btn) {
|
|
|
|
if (btn.tag == 0)
|
|
|
|
{
|
|
|
|
TrackViewController *vc = [TrackViewController new];
|
|
|
|
[self.navigationController pushViewController:vc animated:YES];
|
|
|
|
}
|
|
|
|
else if (btn.tag == 1)
|
|
|
|
{
|
|
|
|
ElectronicFenceViewController *vc = [ElectronicFenceViewController new];
|
|
|
|
[self.navigationController pushViewController:vc animated:YES];
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
btn.selected = !btn.selected;
|
|
|
|
if (btn.selected)
|
|
|
|
[self showView];
|
|
|
|
else
|
|
|
|
[self dismiss];
|
|
|
|
}
|
|
|
|
|
|
|
|
}];
|
|
|
|
button.tag = i;
|
|
|
|
button.layer.cornerRadius = 5;
|
|
|
|
button.layer.masksToBounds = YES;
|
|
|
|
button.backgroundColor = RGB(232, 245, 255);
|
|
|
|
[button setImage:ImageName_(imageArr[i]) forState:0];
|
|
|
|
[_bottomView addSubview:button];
|
|
|
|
[button mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.left.equalTo(_bottomView).offset(20+i*ww+15*i);
|
|
|
|
make.bottom.equalTo(_bottomView.mas_bottom).inset(20);
|
|
|
|
make.size.mas_equalTo(CGSizeMake(i == 2 ? wws : ww, 35));
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
|
|
|
|
/// 定位
|
|
|
|
UIButton *button = [UICommon ui_buttonSimple:CGRectZero font:FontBoldADA_(12) normalColor:KKTextBlackColor normalText:@"" click:^(UIButton *btn) {
|
|
|
|
|
|
|
|
[self GetLatest];
|
|
|
|
}];
|
|
|
|
[button setImage:ImageName_(@"map_button_gps") forState:0];
|
|
|
|
[_bottomView addSubview:button];
|
|
|
|
[button mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.right.equalTo(_bottomView.mas_right).inset(20);
|
|
|
|
make.top.equalTo(_bottomView).offset(15);
|
|
|
|
make.size.mas_equalTo(CGSizeMake(40, 40));
|
|
|
|
}];
|
|
|
|
|
|
|
|
}
|
|
|
|
return _bottomView;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (CommonTableView *)btnTableView
|
|
|
|
{
|
|
|
|
if (!_btnTableView)
|
|
|
|
{
|
|
|
|
_btnTableView = [[CommonTableView alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-30-50, SCREEN_HEIGHT-TabBarHeight-95, 50, 0.000001) style:UITableViewStylePlain cellHeight:71 cellRow:self.cellTitleArr.count isAdaptive:NO isLine:YES commonCell:MapBtnTableViewCell.class createCell:^(ZZTableViewCell * _Nonnull cells, NSIndexPath * _Nonnull indexPath) {
|
|
|
|
MapBtnTableViewCell *cell = (MapBtnTableViewCell *)cells;
|
|
|
|
cell.imageName = self.cellImageArr[indexPath.row];
|
|
|
|
cell.titleName = self.cellTitleArr[indexPath.row];
|
|
|
|
|
|
|
|
} selectedCell:^(UITableView * _Nonnull tableView, NSIndexPath * _Nonnull indexPath) {
|
|
|
|
NSString *title = self.cellTitleArr[indexPath.row];
|
|
|
|
if ([title isEqualToString:@"标准模式"] || [title isEqualToString:@"卫星模式"] || [title isEqualToString:@"3D模式"] || [title isEqualToString:@"定位模式"])
|
|
|
|
{
|
|
|
|
BOOL ish = self.mapSwitchView.hidden;
|
|
|
|
self.mapSwitchView.hidden = !ish;
|
|
|
|
}
|
|
|
|
else if ([title isEqualToString:@"定位说明"])
|
|
|
|
{
|
|
|
|
/// 定位说明
|
|
|
|
MarkExplainViewController *vc = [MarkExplainViewController new];
|
|
|
|
[self.navigationController pushViewController:vc animated:YES];
|
|
|
|
}
|
|
|
|
else if ([title isEqualToString:@"位置纠偏"])
|
|
|
|
{
|
|
|
|
// MapReviseViewController *vc = [[MapReviseViewController alloc] init];
|
|
|
|
// [self.navigationController pushViewController:vc animated:YES];
|
|
|
|
}
|
|
|
|
|
|
|
|
} DidscrollView:^(UIScrollView * _Nonnull scrollView) {}];
|
|
|
|
_btnTableView.layer.cornerRadius = 10;
|
|
|
|
_btnTableView.layer.masksToBounds = YES;
|
|
|
|
_btnTableView.hidden = YES;
|
|
|
|
[UICommon setTavleViewlink:_btnTableView distance:0];
|
|
|
|
[UICommon setExtraCellLineHidden:_btnTableView];
|
|
|
|
|
|
|
|
}
|
|
|
|
return _btnTableView;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)showView
|
|
|
|
{
|
|
|
|
self.btnTableView.hidden = NO;
|
|
|
|
self.btnTableView.size = CGSizeMake(50, self.cellTitleArr.count*71);
|
|
|
|
[UIView animateWithDuration:0.25f
|
|
|
|
delay:0.0f
|
|
|
|
options:UIViewAnimationOptionCurveEaseOut
|
|
|
|
animations:^{
|
|
|
|
CGRect frame = self.btnTableView.frame;
|
|
|
|
frame.origin.y = frame.origin.y - frame.size.height-10;
|
|
|
|
self.btnTableView.frame = frame;
|
|
|
|
}completion:^(BOOL finished) {
|
|
|
|
self.btnTableView.conrnerRadius(10).shadowColor(KKMainColor).shadowOffset(CGSizeMake(3, 3)).shadowRadius(5).shadowOpacity(0.1).showVisual();
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)dismiss
|
|
|
|
{
|
|
|
|
self.btnTableView.conrnerRadius(10).shadowColor(KKClearColor).shadowOffset(CGSizeMake(3, 3)).shadowRadius(5).shadowOpacity(0.1).showVisual();
|
|
|
|
self.btnTableView.clerVisual();
|
|
|
|
self.mapSwitchView.hidden = YES;
|
|
|
|
[UIView animateWithDuration:0.25f
|
|
|
|
delay:0.0f
|
|
|
|
options:UIViewAnimationOptionCurveEaseIn
|
|
|
|
animations:^{
|
|
|
|
CGRect frame = self.btnTableView.frame;
|
|
|
|
frame.origin.y = frame.origin.y + frame.size.height+10;
|
|
|
|
self.btnTableView.frame = frame;
|
|
|
|
}completion:^(BOOL finished) {
|
|
|
|
self.btnTableView.hidden = YES;
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
|
|
|
|
- (UIView *)mapSwitchView
|
|
|
|
{
|
|
|
|
if (!_mapSwitchView)
|
|
|
|
{
|
|
|
|
NSArray *arr = @[@"标准模式",@"卫星模式"];
|
|
|
|
_mapSwitchView = [UICommon ui_view:CGRectZero backgroundColor:KKWhiteColorColor cornerRadius:10 borderWidth:0 borderColor:KKClearColor];
|
|
|
|
_mapSwitchView.hidden = YES;
|
|
|
|
for (int i = 0; i < arr.count; i++)
|
|
|
|
{
|
|
|
|
UIButton *btn = [UICommon ui_buttonSimple:CGRectZero font:Font_(14) normalColor:KKTextBlackColor normalText:arr[i] click:^(UIButton *button) {
|
|
|
|
self.mapSwitchView.hidden = YES;
|
|
|
|
[self.cellTitleArr replaceObjectAtIndex:0 withObject:button.currentTitle];
|
|
|
|
[self.btnTableView reloadData];
|
|
|
|
if([button.currentTitle isEqualToString:@"标准模式"])
|
|
|
|
self.gdMapView.mapView.mapType = MKMapTypeStandard;
|
|
|
|
else if([button.currentTitle isEqualToString:@"卫星模式"])
|
|
|
|
self.gdMapView.mapView.mapType = MKMapTypeSatellite;
|
|
|
|
else
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}];
|
|
|
|
[_mapSwitchView addSubview:btn];
|
|
|
|
[btn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.left.right.equalTo(_mapSwitchView);
|
|
|
|
make.top.equalTo(_mapSwitchView).offset(i*45);
|
|
|
|
make.height.mas_equalTo(45);
|
|
|
|
}];
|
|
|
|
if (i < arr.count-1)
|
|
|
|
{
|
|
|
|
UILabel *line = [UILabel new];
|
|
|
|
line.backgroundColor = RGB(235, 235, 235);
|
|
|
|
[_mapSwitchView addSubview:line];
|
|
|
|
[line mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
|
make.left.right.equalTo(_mapSwitchView);
|
|
|
|
make.bottom.equalTo(btn.mas_bottom);
|
|
|
|
make.height.mas_equalTo(0.5);
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return _mapSwitchView;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (NSMutableArray *)cellTitleArr
|
|
|
|
{
|
|
|
|
if (!_cellTitleArr) _cellTitleArr = [NSMutableArray new];
|
|
|
|
return _cellTitleArr;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (NSMutableArray *)cellImageArr
|
|
|
|
{
|
|
|
|
if (!_cellImageArr) _cellImageArr = [NSMutableArray new];
|
|
|
|
return _cellImageArr;
|
|
|
|
}
|
|
|
|
/*
|
|
|
|
#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.
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
|
|
|
|
@end
|