gpt4 book ai didi

ios - viewcontroller View 中导航项 titleView 的框架

转载 作者:行者123 更新时间:2023-11-28 15:23:27 25 4
gpt4 key购买 nike

如何在 viewcontroller View 的坐标系中获取 navigationItem 的 titleView 的框架?

if let navBarHeight = navigationController?.navigationBar.frame.height,
let navBarWidth = navigationController?.navigationBar.frame.width {
myCustomTitleView.frame = CGRect(x: 0, y: 0, width: navBarWidth, height: navBarHeight)
navigationItem.titleView = myCustomTitleView
}

但是,当我检查 myCustomTitleView 的框架原点时,我得到 (0, 0)。

然后我尝试将这个原点转换为 View Controller 的 View 。我得到的是 (0,-44),它占导航栏高度但不占 x 偏移量。

let originInVCView = view.convert(myCustomTitleView.frame.origin, from: myCustomTitleView)

这不可能是正确的,因为 titleView 显然有一个偏移量(后退按钮的空间)。

如何正确提取翻译后的 titleView 来源?

最佳答案

您要确保首先在 viewDidLoad() 中设置了导航项。否则将为零。

override func viewDidLoad() {
super.viewDidLoad()

let imageView = UIImageView(image: UIImage(named: "MY_IMAGE"))
navigationItem.titleView = imageView

完成后,您可以在 VC 的 viewDidAppear 中获取布局 View 的框架:

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)

let nItemFrame = navigationItem.titleView?.frame //<<<---
}

关于ios - viewcontroller View 中导航项 titleView 的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45595934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com