Objective c IOS 11状态栏更改

Objective c IOS 11状态栏更改,objective-c,ios10,ios11,Objective C,Ios10,Ios11,我们正在将我们的移动应用程序升级到ios 11,但有一个问题我找不到任何解决方案 在IOS 10中,我们使状态栏和navigationcontroller透明,因此navigationcontroller下面的图像从屏幕顶部开始。 然而,当我使用xcode 9和ios 11构建相同的代码时,结果如下: 下面是我们在IOS 10和xcode 8中使用的代码。你知道IOS 11中导航栏或状态栏有什么变化吗 if ([self.viewModel profileImage]) { if (d

我们正在将我们的移动应用程序升级到ios 11,但有一个问题我找不到任何解决方案

在IOS 10中,我们使状态栏和navigationcontroller透明,因此navigationcontroller下面的图像从屏幕顶部开始。 然而,当我使用xcode 9和ios 11构建相同的代码时,结果如下:

下面是我们在IOS 10和xcode 8中使用的代码。你知道IOS 11中导航栏或状态栏有什么变化吗

if ([self.viewModel profileImage]) {
    if (diff <= 0) {
        self.statusBarBackground.alpha = 1.0;
    } else {
        self.statusBarBackground.alpha = 1.0;
        self.statusBarBackgroundHeight.constant = MIN(statusBarHeight, diff);
    }

}
if([self.viewModel profileImage]){
if(diff
尝试设置contentInsetAdjustmentBehavior


此方法仅适用于滚动视图。您也可以在序列图像板中执行此操作。打开序列图像板,选择控制器,选择右上角的属性,然后取消选中顶部栏下的选项。我对web视图有问题,这有助于了解视图控制器的类型,您使用的是序列图像板还是代码中的所有内容?我不确定这是否可以是c我考虑了一个修复,但我也遇到了同样的问题,我在某处读到它是XCode 9中的一个bug(目前我无法确认这一点),在使用XCode 8.3.3清理和重建应用程序后,状态栏的颜色与之前有白色条的同一iOS 11设备上的颜色是正确的,没有对代码进行任何更改。不确定这是否是您遇到的问题,但我通过将情节提要上的约束更改为容器顶部,而不是顶部布局指南,解决了此问题。这在iOS 11设备上造成了20像素的间隔,但在iOS 10设备上没有问题。
 if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
if #available(iOS 11.0, *) {
scrollView.contentInsetAdjustmentBehavior = .never
}