问题描述
如何像 App Store Connect 一样将 UISegmentedControl
作为其下方的 UINavigationBar
的一部分?看起来它是 UINavigationBar
的一部分,因为条形下方有一个阴影。此外,当它推动另一个 VC 时,该 VC 会将段控制传递给下一个。我认为,那里的项目必须有一个定制的过渡。
我还发现联系人中的搜索栏外观相同。
我发现了一个关于类似主题的问题。但是最高票数的答案让我困惑了如何实施它。而且,它看起来不像App store connect中的segment控件。 UISegmentedControl below UINavigationbar in iOS 7
解决方法
我自己找到了解决方案,只需在此处分享给可能需要此 link 的人。 Here 是代码。
- 自定义由 UINavigationBar 继承的导航栏
- 在 _UINavigationBarLargeTitleView 上添加框架观察者,在 _UINavigationBarContentView 子标题标签上添加 alpha 观察者以计算颜色
- 使用导航栏初始化 UINavigationController
- 在 UIBarButtonItem 中添加 UISegmentControl
- 使用 Bar Button Item 初始化一个 UIToolbar 并将其设置为表格的第一个部分标题
- 将工具栏顶部阴影线设置为 nil 并在底部添加另一条阴影线
- 分配导航栏块以更新工具栏色调颜色和阴影线 alpha 值
结果与 App Store Connect 并非 100% 相同,但满足了我的临时请求。
而且我认为最好的方法是实现您自定义的导航栏。