【问题标题】:Navigation bar title view missing in iOS11iOS11中缺少导航栏标题视图
【发布时间】:2017-09-29 09:26:26
【问题描述】:

我正在为iPad 快速开发一个项目。 在故事板的导航栏标题视图中放置了一个图像视图。 标题视图按预期在iOS 10 及以下显示。 当我在 iOS 11 模拟器中运行相同的项目并且物理设备导航栏未显示标题视图时,我们将不胜感激。

【问题讨论】:

  • 任何关于你如何做到这一点的代码将不胜感激。
  • 没有添加标题视图的代码,这是从情节提要中添加的

标签: swift uinavigationcontroller uinavigationbar ios11


【解决方案1】:

创建一个自定义视图并覆盖自定义标题视图类中的以下方法以在运行时更新视图框架大小。

Obj-C

-(CGSize)intrinsicContentSize
{
    [super intrinsicContentSize];
    return UILayoutFittingExpandedSize;
}

斯威夫特

override var intrinsicContentSize: CGSize {
    return UILayoutFittingExpandedSize
}

检查并告诉我它是否适合您?

【讨论】:

  • 只需使用层次视图选项进行调试,您就会知道自定义 titleView 的帧大小仅在 ios 11 中为零。要在运行时更新帧大小,您需要调用此方法。
  • 哦是吗?此代码是否显示对 iOS 10 及更低版本的现有行为有任何影响?还是仅适用于 iOS 11?
  • 我希望,对 iOS 10 及更低版本的现有行为没有影响。请检查并告诉我。
【解决方案2】:

也许这对你有帮助

let widthConstraint = view.widthAnchor.constraint(equalToConstant: width)
let heightConstraint = view.heightAnchor.constraint(equalToConstant:height)
widthConstraint.isActive = true
heightConstraint.isActive = true

view 是您用作自定义标题视图的视图。 widthheight 是您要使用的大小。您可以使用:

let width = view.frame.width
let height = view.frame.height

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    相关资源
    最近更新 更多