From 850b2e29889091684b088ad64741aa469a8db628 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Tue, 26 Jul 2016 22:45:29 -0700 Subject: [ios] Fixed crash drawing compass on iOS 8.1 (#5791) Fixes #5780. --- platform/ios/CHANGELOG.md | 4 ++++ platform/ios/src/MGLMapView.mm | 13 +++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index 049d165c2c..e55624f8bb 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -2,6 +2,10 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONTRIBUTING.md](../../CONTRIBUTING.md) to get started. +## 3.3.2 + +* Fixed a crash that occurred when initializing an MGLMapView on iOS 8.1 or below. ([#5791](https://github.com/mapbox/mapbox-gl-native/pull/5791)) + ## 3.3.1 * Fixed a crash that occurred when a sprite URL lacks a file extension. See [this comment](https://github.com/mapbox/mapbox-gl-native/issues/5722#issuecomment-233701251) to determine who may be affected by this bug. ([#5723](https://github.com/mapbox/mapbox-gl-native/pull/5723)) diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index 4d692fa718..b36efe3bd7 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -586,9 +586,18 @@ mbgl::Duration MGLDurationInSeconds(NSTimeInterval duration) UIGraphicsBeginImageContextWithOptions(scaleImage.size, NO, [UIScreen mainScreen].scale); [scaleImage drawInRect:{ CGPointZero, scaleImage.size }]; - CGFloat weight = &UIFontWeightUltraLight ? UIFontWeightUltraLight : -0.8; + CGFloat northSize = 9; + UIFont *northFont; + if ([UIFont respondsToSelector:@selector(systemFontOfSize:weight:)]) + { + northFont = [UIFont systemFontOfSize:northSize weight:UIFontWeightUltraLight]; + } + else + { + northFont = [UIFont systemFontOfSize:northSize]; + } NSAttributedString *north = [[NSAttributedString alloc] initWithString:NSLocalizedStringWithDefaultValue(@"COMPASS_NORTH", nil, nil, @"N", @"Compass abbreviation for north") attributes:@{ - NSFontAttributeName: [UIFont systemFontOfSize:9 weight:weight], + NSFontAttributeName: northFont, NSForegroundColorAttributeName: [UIColor whiteColor], }]; CGRect stringRect = CGRectMake((scaleImage.size.width - north.size.width) / 2, -- cgit v1.2.1