我想在我的UISearchBar下面添加范围按钮。但是,我无法更改内置示波器按钮的色调颜色。

相反,我在tableViewHeader中添加了一个UISegmentedControl。这工作得很好,但是仅当我不输入UISearchbar时才显示。不太方便。

当我在UISearchBar中输入文本时,表和分段控件被“不显示结果”半不透明的黑色层隐藏。一旦开始显示结果,我的分段控件就会完全消失,只有显示结果的单元格才会显示。

我想在文本输入搜索栏的过程中使分段控件可单击。

您知道采取以下任何方式吗?

  • 在输入文本时使UISegmentedControl与UISearchBar一起移动,或者
  • 显示UISegmentedControl,而搜索结果显示在UITableView上

  • 谢谢

    最佳答案

    尝试

    @implementation UISearchBar (subviewAccess)
    - (UISegmentedControl *)scopeBar {
      for (UIView *v in [self subviews]) {
        if ([v isKindOfClass:[UISegmentedControl class]])
          return v;
      }
    
      return nil;
    }
    

    @结束

    获取所需的分段控件,然后从那里进行着色
    (当前位于索引0,但这绝对不确定)

    没有使用“ private API”,因此Apple应该可以使用,
    但请注意,如果他们更改了视图布局(不太可能),这可能会中断,
    这会导致您的色彩消失的副作用,您应该
    通过标准搜索栏API访问其其余状态

    关于ios - 将UISegmentedControl添加到UISearchBar而不是范围按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6243772/

    10-14 22:43