我在UInavigationBar上使用UISearchDisplayController,但UISearchDisplayController的背景颜色与uinavigationbar的颜色不匹配。我在ma ViewDidLoad中使用了以下代码,但没有更改,我无法更改UISearchDisplayController的颜色
self.searchDisplayController.searchBar.tintColor = [UIColor clearColor];发布于 2013-05-17 20:35:14
我所做的是创建了一个UISearchBar子类,并在IB中使searchBar属于该子类的UISearchDisplayController部分。从那时起,我可以更改tintColor和backgroundColor。我需要这样做的原因是因为UISearchBar在UINavigationBar中不能正确显示,这是我唯一能想到的方法,怎么做。
编辑
实际上,使用UISearchDisplayController的初始化器initWithSearchBar:contentsController:可以相对容易地做到这一点,但是您仍然需要创建UISearchBar的子类。
这是我使用的代码。现在,如果您通过IB执行此操作,则只需使用initWithCoder:,但我创建了一个setup方法。以防万一,我需要在IB之外的其他地方再次使用它。
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self setup];
}
return self;
}
-(id) initWithCoder:(NSCoder *)aDecoder {
if (self = [super initWithCoder:aDecoder]) {
[self setup];
}
return self;
}
-(id)init {
if (self = [super init]) {
[self setup];
}
return self;
}
-(void) setup {
self.backgroundColor = [UIColor clearColor];
self.tintColor = [UIColor clearColor];
for (UIView * view in self.subviews) {
if ([view isMemberOfClass:NSClassFromString(@"UISearchBarBackground")]) {
view.alpha = 0.0;
}
}
}发布于 2013-05-17 20:49:33
UISearchDisplayController不是接口元素。它是一个控制器,不是一个视图。它没有颜色。
https://stackoverflow.com/questions/14314326
复制相似问题