首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NavigationBar和SafeArea下的iOS 11 MapView指南针在iOS 10上不起作用

NavigationBar和SafeArea下的iOS 11 MapView指南针在iOS 10上不起作用
EN

Stack Overflow用户
提问于 2017-11-22 19:07:33
回答 2查看 628关注 0票数 2

我正在为将我的应用迁移到iOS 11而苦苦挣扎。为了可重用性,我将我的层次结构分成了多个StoryBoards。在第一个StoryBoard中,我有一个自定义容器视图控制器,它托管一个选项卡栏和一个特殊视图(MonitoringView)。它嵌入在一个UINavigationController中。我将这个控制器嵌入到导航控制器中,因为我希望所有选项卡上的功能和标题都相同。

在其中一个选项卡中,我想显示一张地图。在StoryBoard上,我用0将地图固定在SuperView上,因此我将其放在导航和选项卡栏下。这里我还有一个自定义控件,我将它固定在视图控制器的SafeArea上。

现在,当我运行应用程序时,我使用

代码语言:javascript
复制
if #available(iOS 11.0, *) {
    controller.additionalSafeAreaInsets = UIEdgeInsetsMake(monitoringView.frame.size.height, 0, tabBar.frame.size.height, 0)
}

在容器控制器中调整子控制器(具有贴图的控制器)的安全区域插入。

虽然这适用于我附加到安全区域的额外控件,但地图的指南针和法律公告隐藏在iOS 11上的导航/选项卡栏下。在iOS 10上,虽然控件位于导航栏下,而公告和指南针则远离视图中心

我现在正在寻找一个解决方案,我尝试了很多不同的东西。我真的很绝望,完全不知道我做错了什么。任何提示都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2021-06-23 00:58:15

尝试将automaticallyAdjustsContentInset设置为YES或NO。

票数 0
EN

Stack Overflow用户

发布于 2018-01-28 00:56:58

我认为你可以很容易地从Objective-C重写到Swift。

代码语言:javascript
复制
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;

}

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47433157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档