2

我们的代码可以使用以前的版本,但在 iOS13 上,自定义通知内容高度无法正常工作。一切都应该是可见的,但在部分视图后按钮不可点击。因此,例如在 320 像素之后,自定义视图是不可点击的。在 ios12 上运行相同的代码可以工作。

func didReceive(_ notification: UNNotification) {

   let content = notification.request.content
            
   self.preferredContentSize = CGSize(width: self.view.frame.size.width, height: contentH)
   self.view.setNeedsUpdateConstraints()
   self.view.setNeedsLayout()
}

有什么解决办法吗?还是iOS13的错误?

##更新 :

我们正在 iOS14 测试版上开发我们的应用程序,但问题仍然存在。与此相关的只有一件事是新的。当我们点击屏幕时,这就是我们得到的。

NotificationContent[44466:2340668] [Assert] UIScrollViewDelayedTouchesBeganGestureRecognizer 已移至非滚动视图的视图,因此我们无法确定触摸是否在滚动指示器上。

我们将所有子视图添加到视图控制器的视图(没有自定义容器)。

4

1 回答 1

0

我不确定您从哪里设置高度和宽度,但是在 IOS 13 之后,通知和推送通知都发生了很多变化,虽然推送通知仍然是一个很大的麻烦,必须更改令牌,而通知的更大影响是许多 UIApplicationDelegate 生命周期方法不再被调用。

现在 UISceneDelegate 中有相应的生命周期方法。这意味着需要在 iOS 13 下收听 UIScene.didEnterBackgroundNotification 通知。现在您可能认为它对通知的高度或宽度没有直接影响,我遇到了这种情况并且正在移动他们根据他们正确呈现的新生命周期方法的人。

我不确定您的问题是否会得到解决,但也请查看以下链接。可能会帮助你。即使我在遇到问题时也提到了这个

视图控制器在 iOS 12 中响应应用程序委托通知,但在 iOS 13 中不响应

于 2019-09-30T11:33:57.553 回答