美文网首页iOS小白成长之路
iOS高德地图适配暗黑模式

iOS高德地图适配暗黑模式

作者: 李有钱灬 | 来源:发表于2020-04-15 15:27 被阅读0次

    iOS13以后iOS开发者讨论最大的应该就是暗黑模式了,我自己最近也在加班加点地为公司所有iOS项目适配暗黑模式,具体做法网上很多说明,适配的方式虽然很繁琐但也很简单,这里就不多做赘述,主要讲一下高德地图适配暗黑模式的方式,Let's do IT!

    主要方式有两种,各位可以根据实际项目进行选择

    一、使用默认高德地图样式的可以在切换暗黑模式时改变高德地图的mapType,具体如下:

    - (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
        
        if (previousTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
            
            self.mapView.mapType = MAMapTypeStandard;
        } else {
            
            self.mapView.mapType = MAMapTypeStandardNight;
        }
    }
    

    二、自定义高德地图样式setCustomMapStyleWithWebData,具体如下:

    1. 高德地图后台自定义一个默认模式地图样式和一个暗黑模式地图样式,定义好后发布-下载,将两个.data的包导入项目中
    2. 在切换暗黑模式时直接设置自定义地图样式即可
    - (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
            
        NSString *path = [NSString stringWithFormat:@"%@/style.data", [NSBundle mainBundle].bundlePath];
        
        if (previousTraitCollection.userInterfaceStyle == UIUserInterfaceStyleLight) {
            path = [NSString stringWithFormat:@"%@/style_night.data", [NSBundle mainBundle].bundlePath];
        }
        
        NSData *data = [NSData dataWithContentsOfFile:path];
        [self.mapView setCustomMapStyleWithWebData:data];
    }
    

    一点疑惑:如果是自定义了地图样式(setCustomMapStyleWithWebData),再设置mapType为MAMapTypeStandardNight时会崩溃,而设置为其他模式如:MAMapTypeSatellite时却不会崩溃,不知道为什么

    相关文章

      网友评论

        本文标题:iOS高德地图适配暗黑模式

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