【问题标题】:Add a segment control in the second line of the UINavigationBar just like the App Store Connect就像 App Store Connect 一样,在 UINavigationBar 的第二行添加一个段控件
【发布时间】:2021-05-03 17:05:38
【问题描述】:

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

我还发现通讯录中的搜索栏外观相同。

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

【问题讨论】:

  • Apple 并未将其作为公共 API 提供。
  • @matt 我知道它不是公共 API,但我想找到一种方法来制作它,即使看起来很相似。

标签: swift uisegmentedcontrol


【解决方案1】:

我自己找到了解决方案,在这里分享一下,因为有人可能需要这个linkHere 是代码。

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

结果与 App Store Connect 不是 100% 相同,但满足了我的临时要求。

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

【讨论】:

    猜你喜欢
    • 2013-10-15
    • 1970-01-01
    • 2010-12-25
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多