首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在iOS 11中引入的UINavigationBar大标题视图上添加自定义视图

如何在iOS 11中引入的UINavigationBar大标题视图上添加自定义视图
EN

Stack Overflow用户
提问于 2017-10-07 20:22:12
回答 2查看 5K关注 0票数 9

我想在UINavigationBar的大标题视图上添加一个自定义的子视图,就像iOS 11中的应用商店一样。(右侧的“用户图标”)

我们可以通过UINavigationItem.titleView访问传统的导航栏区域,但似乎没有访问大标题视图区域的接口。

https://developer.apple.com/documentation/uikit/uinavigationitem/ https://developer.apple.com/documentation/uikit/uinavigationbar/

我使用View Hierarchy Debugger确认了它的名字是"_UINavigationBarLargeTitleView“。我可以在其上添加自定义视图吗?

EN

回答 2

Stack Overflow用户

发布于 2018-08-01 12:14:20

解决方案依赖于大标题标签的子视图顺序,而不是其私有类名,以使其符合AppStore准则。

代码语言:javascript
运行
复制
class CustomLargeTitleNavigationBar: UINavigationBar {

    override func didMoveToSuperview() {
        super.didMoveToSuperview()

        if #available(iOS 11.0, *) {
            for subview in subviews {
                if let largeTitleLabel = subview.subviews.first(where: { $0 is UILabel }) as? UILabel {
                    let largeTitleView = subview
                    print("largeTitleView:", largeTitleView)
                    print("largeTitleLabel:", largeTitleLabel)
                    // you may customize the largeTitleView and largeTitleLabel here
                    break
                }
            }
        }
    }
}
票数 7
EN

Stack Overflow用户

发布于 2017-10-24 03:24:25

根据这篇文章,我想应该或多或少是这样的。https://qiita.com/KikurageChan/items/4152c2d8ac89c601a054

代码语言:javascript
运行
复制
import UIKit
@IBDesignable class CustomNavigationBar: UINavigationBar {
override func layoutSubviews() {
    super.layoutSubviews()
    if #available(iOS 11.0, *) {
        for subview in self.subviews {
            let stringFromClass = NSStringFromClass(subview.classForCoder)
            if stringFromClass.contains("UINavigationBarLargeTitleView") {
                //subview.frame.size.height = 30
                // Custom view
                subview.addSub.....

            }
        }
    }
  }
}

CustomNavigationBar

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46620068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档