【问题标题】:Prevent UINavigationItem's TitleView from blinking防止 UINavigationItem 的 TitleView 闪烁
【发布时间】:2018-02-12 20:03:34
【问题描述】:

我正在使用 UINavigationItems titleView 属性在我的 ViewController 的 UINavigationBar 的中心设置视图。问题是,当我用相同的titleView 推送另一个 ViewController 时,它会闪烁。

这是我在 ViewControllers 中设置 titleView 的方法

let view = UIView(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
view.backgroundColor = .red
self.navigationItem.titleView = view

我能做些什么来防止这种情况发生?

【问题讨论】:

  • 如果你设置self.navigationController?.navigationItemtitleView而不是self.navigationItem呢?
  • 你在哪里执行上面的代码?视图加载? viewDidAppear?
  • 您可以在viewWillAppear 方法中设置titleView,该方法将在视图完全加载之前设置redView,但它仍不会保留在之前的ViewController 中,因为有一个根据 UINavigation 中的 pushpop 在每个 viewControllers 之间从左到右或从右到左进行动画转换。
  • @karnett 我在两个 ViewController 的父级 UIViewConrtroller 内的 viewDidLoad 中执行它。
  • @Matt.kaaj 我不能禁用过渡动画吗?

标签: ios swift uinavigationbar ios11 uinavigationitem


【解决方案1】:

我最终使用自定义视图并将其作为子视图添加到UINavigationBar。我还将 UINavigationItems titleView 设置为空白视图,以防止 LargeTitle 出现在我的视图中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2013-08-04
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    相关资源
    最近更新 更多