2013-01-14 59 views
0

我在UInavigationBar上使用UISearchDisplayController,但UISearchDisplayController的背景顏色與uinavigationbar的顏色不匹配。我用下面的代碼在馬ViewDidLoad,但沒有改變,我無法改變的UISearchDisplayController無法更改UISearchDisplayController的顏色

self.searchDisplayController.searchBar.tintColor = [UIColor clearColor]; 

顏色可任意1幫我在這謝謝:)

回答

0

我所做的就是我創建了一個UISearchBar子類和IB中的searchBar屬於該子類的UISearchDisplayController部分。從那裏我能夠改變tintColorbackgroundColor。我需要這個的原因是因爲UISearchBarUINavigationBar內顯示不正確,這是我能想到的唯一方法,以及如何去做。

編輯

你居然能做到這一點相對容易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; 
     } 
    } 
} 
0

A UISearchDisplayController不是接口元件。它是一個控制器,而不是一個視圖。它沒有顏色。

+0

我認爲他明白,但'UISearchDisplayController'有一個'searchBar'屬性。他在他的代碼示例中使用了哪個。 – user828267