首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法更改UISearchDisplayController的颜色

无法更改UISearchDisplayController的颜色
EN

Stack Overflow用户
提问于 2013-01-14 14:50:19
回答 2查看 569关注 0票数 0

我在UInavigationBar上使用UISearchDisplayController,但UISearchDisplayController的背景颜色与uinavigationbar的颜色不匹配。我在ma ViewDidLoad中使用了以下代码,但没有更改,我无法更改UISearchDisplayController的颜色

代码语言:javascript
复制
self.searchDisplayController.searchBar.tintColor = [UIColor clearColor];
EN

回答 2

Stack Overflow用户

发布于 2013-05-17 20:35:14

我所做的是创建了一个UISearchBar子类,并在IB中使searchBar属于该子类的UISearchDisplayController部分。从那时起,我可以更改tintColorbackgroundColor。我需要这样做的原因是因为UISearchBarUINavigationBar中不能正确显示,这是我唯一能想到的方法,怎么做。

编辑

实际上,使用UISearchDisplayController的初始化器initWithSearchBar:contentsController:可以相对容易地做到这一点,但是您仍然需要创建UISearchBar的子类。

这是我使用的代码。现在,如果您通过IB执行此操作,则只需使用initWithCoder:,但我创建了一个setup方法。以防万一,我需要在IB之外的其他地方再次使用它。

代码语言:javascript
复制
- (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;
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2013-05-17 20:49:33

UISearchDisplayController不是接口元素。它是一个控制器,不是一个视图。它没有颜色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14314326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档