2011-06-05 40 views
3

我想在我的UISearchBar下面添加范围按钮。不过,我无法更改内置范围按钮的色调。添加一个UISegmentedControl到UISearchBar而不是范围按钮

相反,我添加了一个UISegmentedControl到我的tableViewHeader。这工作得不错,但它只显示当我而不是键入到UISearchbar。不是很方便。

当我在UISearchBar中输入文本时,表格和分段控件被“无结果显示”半透明黑图层隐藏起来。一旦结果开始显示我的分段控制完全消失,并且只显示结果的单元格。

我想让分段控件在文本输入到搜索栏时可点击。

你知道有什么办法可以做到以下几点吗?

  1. 化妆正在输入文本时,UISegmentedControl用的UISearchBar移动,或
  2. 显示UISegmentedControl,而搜索结果将显示在UITableView的

谢谢

回答

0

尝试

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

    return nil; 
} 

@end

得到你想要的分段控制的保持,并从那里 着色工作(这是目前指数0,但是这绝对不是肯定的)

有没有使用“私有API”,所以苹果应该 但是请注意,如果他们改变了他们的视图布局(不太可能),这可能会中断, 这会让你的色彩消失的副作用,你应该通过标准搜索栏API

+0

嗨@bhirley,谢谢,不过我已经尝试过了。这似乎将范围按钮更改为正常的UISegmentedControl,但高度已经不足了。我也尝试单独访问每个UISegment,但即使它响应setTintColor方法,颜色也不会改变。有任何想法吗? – pchap10k 2011-06-06 01:01:39

+0

在iOS 5中有很多组件的附加着色支持,如果这是任何安慰 – bshirley 2011-06-07 02:46:39

相关问题