iOS: 13 - 删除状态栏和滚动视图之间的 space
iOS: 13 - remove space between status bar and scrollview
最近,我将我的 Xcode 从 10.1 更新到 11.3,当我 运行 我的应用程序在模拟器上使用 iOS 13 时,我注意到一些功能发生了变化,我看到状态栏和我用于主页的滚动视图之间有一个space,请看附图:
https://i.stack.imgur.com/uoFE7.png
https://i.stack.imgur.com/Rb0FV.png
如何修复?
那是因为您用来显示视图控制器的代码。
方法 present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil)
将以模态方式显示您的视图控制器。 https://developer.apple.com/documentation/uikit/uiviewcontroller
如果您不想要这种效果,则必须使用 pushViewController(_ viewController: UIViewController, animated: Bool)
https://developer.apple.com/documentation/uikit/uinavigationcontroller
虽然罗伯托的回答并非完全错误,但您仍然可以使用 present(...)
并通过设置呈现的控制器的转换来实现所需的 UI:
let vc = // initiate
vc.modalPresentationStyle = .fullScreen
present(vc, animation: true, completion: nil)
您遇到的是 iOS 13 中的新默认行为,拥有它非常好(您可以下拉新控制器以关闭它)。
当然,这会导致以这种方式呈现新控制器的旧应用程序表现不同。
如果可以推送视图控制器,请考虑 Roberto 的回答。如果使用礼物:
故事板解决方案:
如果您仍想使用 present,请在故事板中将 segue presentation 更改为 Full Screen
。
以编程方式:
let vc = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "yourVC") as! YourVC
vc.modalPresentationStyle = .fullScreen // add this
self.present(vc, animated: true, completion: nil)
最近,我将我的 Xcode 从 10.1 更新到 11.3,当我 运行 我的应用程序在模拟器上使用 iOS 13 时,我注意到一些功能发生了变化,我看到状态栏和我用于主页的滚动视图之间有一个space,请看附图:
https://i.stack.imgur.com/uoFE7.png
https://i.stack.imgur.com/Rb0FV.png
如何修复?
那是因为您用来显示视图控制器的代码。
方法 present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil)
将以模态方式显示您的视图控制器。 https://developer.apple.com/documentation/uikit/uiviewcontroller
如果您不想要这种效果,则必须使用 pushViewController(_ viewController: UIViewController, animated: Bool)
https://developer.apple.com/documentation/uikit/uinavigationcontroller
虽然罗伯托的回答并非完全错误,但您仍然可以使用 present(...)
并通过设置呈现的控制器的转换来实现所需的 UI:
let vc = // initiate
vc.modalPresentationStyle = .fullScreen
present(vc, animation: true, completion: nil)
您遇到的是 iOS 13 中的新默认行为,拥有它非常好(您可以下拉新控制器以关闭它)。
当然,这会导致以这种方式呈现新控制器的旧应用程序表现不同。
如果可以推送视图控制器,请考虑 Roberto 的回答。如果使用礼物:
故事板解决方案:
如果您仍想使用 present,请在故事板中将 segue presentation 更改为 Full Screen
。
以编程方式:
let vc = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "yourVC") as! YourVC
vc.modalPresentationStyle = .fullScreen // add this
self.present(vc, animated: true, completion: nil)