ios - iOS导航栏自定义titleView子视图未正确显示
问题描述
当父 viewController 从另一个视图控制器推送时,iOS 导航栏自定义 titleView 子视图无法正确显示。
从不同的视图控制器推送后视图控制器中的自定义标题视图
我为自定义 TitleView 尝试的代码
let height = CGFloat(500)
self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 50, width: view.frame.width, height: height)
self.navigationController?.navigationBar.backgroundColor = .blue
let navView = UIImageView()
navView.frame = CGRect(x: 0, y: 0, width: view.frame.width-100, height: height)
navView.backgroundColor = .red
navigationItem.titleView = navView
苏维尤
let oneLabel = UILabel()
oneLabel.frame = CGRect(x: 50, y: navView.frame.size.height-13, width: 26, height: 26)
oneLabel.text = "1"
oneLabel.textColor = .white
oneLabel.backgroundColor = UIColor(hexString: Constants.greenColor)
oneLabel.textAlignment = .center
navView.addSubview(oneLabel)
oneLabel.clipsToBounds = true
oneLabel.layer.cornerRadius = 13
解决方案
标签的总高度为 26,而您从图像视图的高度仅减少了 13,显示标签的一半。使标签的 y 值类似于 y:navView.frame.size.height - 30
推荐阅读
- php - 在 laravel 中执行 foreach 后,我得到一个空变量
- python - Python 3-Tkinter destroy() 不适用于动态检查按钮
- c# - 没有 « IEnumerable 类型的 ViewData 元素
- jsf - 如何使用存储在共享 jar 中的 JSF 模板?
- python - 使用 Json API 数据并获取 TypeError: list indices must be integers or slices, not str
- javascript - 如何使用来自客户端的 Socket IO 到 (-).emit(-) 消息 (Javascript)
- octave - octave - 使用 textscan 解析非分隔文本
- python - 矩阵乘法返回错误的矩阵python并行
- swift - 设置属性 P 后需要调用方法 M
- c# - EWS HttpHeader 内容类型