我所做的就是我創建了一個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;
}
}
}
我認爲他明白,但'UISearchDisplayController'有一個'searchBar'屬性。他在他的代碼示例中使用了哪個。 – user828267