iOS 16 导航项中的额外空白空间

问题描述 投票:0回答:0

当我使用 iOS 16 创建最简单的 titleView 并将其添加到 navigationItem 时,我看到了一个无法以任何方式删除的额外空间。我在 iOS 15 上没有这个问题,有人知道可以做什么吗?

我要解决的问题是 titleView 包含一个在 iOS 16 上未对齐的标签。该标签位于 titleView 的最左侧并且

  • 在 iOS 15 上,titleView 本身位于屏幕左右角的 12 个点上
  • 但在 iOS 16 上,titleView 距离屏幕左右角 20 点,不幸的是,这破坏了所需的设计

我附上 iPhone 13 Pro Max 的截图——左边是 iOS 16,右边是 iOS 15:

我有一个包含在导航控制器中的视图控制器,这是视图控制器中唯一的代码

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        navigationItem.titleView =  UIView(frame: CGRect(x: 0, y: 0, width: 404, height: 40)) 

        view.backgroundColor = .lightGray
        titleView.backgroundColor = .red
    }
}

navigationItem.titleView 的框架:

iOS 15: iPhone 13 Pro Max: <UIView: 0x7f85fda14d10; frame = (0 0; 404 40);>
iOS 16: iPhone 13 Pro Max: <UIView: 0x7f7894f157e0; frame = (0 0; 388 40);>

我试过删除插图、边距、更改宽度、更改我设置视图的位置,但没有任何效果,我没有想法

ios uinavigationbar uinavigationitem ios16 titleview
© www.soinside.com 2019 - 2024. All rights reserved.