像App Store Connect一样在UINavigationBar的第二行添加一个segment控件

问题描述

如何像 App Store Connect 一样将 UISegmentedControl 作为其下方的 UINavigationBar 的一部分?看起来它是 UINavigationBar 的一部分,因为条形下方有一个阴影。此外,当它推动另一个 VC 时,该 VC 会将段控制传递给下一个。我认为,那里的项目必须有一个定制的过渡。

我还发现联系人中的搜索栏外观相同。

我发现了一个关于类似主题的问题。但是最高票数的答案让我困惑了如何实施它。而且,它看起来不像App store connect中的segment控件。 UISegmentedControl below UINavigationbar in iOS 7

解决方法

我自己找到了解决方案,只需在此处分享给可能需要此 link 的人。 Here 是代码。

  1. 自定义由 UINavigationBar 继承的导航栏
  2. 在 _UINavigationBarLargeTitleView 上添加框架观察者,在 _UINavigationBarContentView 子标题标签上添加 alpha 观察者以计算颜色
  3. 使用导航栏初始化 UINavigationController
  4. 在 UIBarButtonItem 中添加 UISegmentControl
  5. 使用 Bar Button Item 初始化一个 UIToolbar 并将其设置为表格的第一个部分标题
  6. 将工具栏顶部阴影线设置为 nil 并在底部添加另一条阴影线
  7. 分配导航栏块以更新工具栏色调颜色和阴影线 alpha 值

结果与 App Store Connect 并非 100% 相同,但满足了我的临时请求。

而且我认为最好的方法是实现您自定义的导航栏。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...