[英]iOS 11 MapView Compass under NavigationBar and SafeArea not working on iOS 10
我正在努力將我的App遷移到iOS11。為了實現可重用性,我將層次結構划分為多個StoryBoard。 在第一個StoryBoard中,我有一個自定義的容器視圖控制器,其中包含一個標簽欄和一個特殊的視圖(MonitoringView)。 它嵌入在UINavigationController中。 我將此控制器嵌入導航控制器中,因為我希望所有選項卡上的功能和標題都相同。
我要在其中一個標簽中顯示地圖。 在StoryBoard上,我將地圖固定為0,從而將其固定在SuperView上,因此可以在導航和標簽欄下找到它。 在這里,我還有一個自定義控件,將其固定到視圖控制器的SafeArea。
現在,當我運行該應用程序時,我使用
if #available(iOS 11.0, *) {
controller.additionalSafeAreaInsets = UIEdgeInsetsMake(monitoringView.frame.size.height, 0, tabBar.frame.size.height, 0)
}
在容器控制器中調整子控制器(帶有地圖的控制器)的安全區域插圖。
雖然這對於我固定到安全區域的額外控件來說效果很好,但地圖的指南針和法律聲明隱藏在iOS 11的導航/標簽欄下。在iOS 10上,盡管控件位於通知和指南針的欄中,遠到視圖的中心
我現在正在尋找一種解決方案,並且嘗試了很多不同的方法。 我真的很絕望,不知道我在做什么錯。 任何提示高度贊賞。
我認為您可以輕松地從Objective-C重寫為Swift。
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 11)
{
MKCompassButton *Compass = [MKCompassButton compassButtonWithMapView:self.mapView];
Compass.frame = CGRectMake(ScreenW - 45, 90, Compass.frame.size.width, Compass.frame.size.height);
//Compass.compassVisibility = MKFeatureVisibilityVisible;
[self.view addSubview:Compass];
self.mapView.showsCompass = NO;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.