UINAV,UITOOLBAR,UISEARCHBAR,UITABBAR修改背景圖片(轉載)

程序代碼: 在程序的任何一個 .m文件 後面加上下面代碼即可 記住 要在 @end 的後面加上; 

@implementation UINavigationBar (CustomImage2)   
- (void)drawRect:(CGRect)rect {   
    UIImage *image = [UIImage imageNamed: @"bar.png"];   
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];   
}   
@end 

@implementation UIToolbar (CustomImage2)   
- (void)drawRect:(CGRect)rect {   
    UIImage *image = [UIImage imageNamed: @"bar.png"];   
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];   
}   
@end 

@implementation UITabBar (CustomImage2)   
- (void)drawRect:(CGRect)rect {   
    UIImage *image = [UIImage imageNamed: @"bar.png"];   
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];   
}   

@end 

上面這三個的用法都是一樣的,關鍵是SearchBar 

SearchBar的背景圖片控制不是由SearchBar 本身 而是由 UISearchBarBack 來控制的,因此無法直接用上面的代碼,需要手動把SearchBar上面的兩個View 刪除了才行。 

且看刪除代碼: 

    在你的ViewDidLoad 或者任何一個程序可以執行到的地方 寫下如下代碼,不過首先你得nib 一個 UISearchbar 才行的 

    [[_searchBar.subviews objectAtIndex:0] setHidden:YES]; 
    [[_searchBar.subviews objectAtIndex:0] removeFromSuperview]; 
    for (UIView *subview in _searchBar.subviews) { 
        if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) { 
            [subview removeFromSuperview]; 
            break; 
        } 
    } 

這個代碼 配合 上面的那個類別 

    @implementation UISearchBar (CustomImage2)   
- (void)drawRect:(CGRect)rect {   
    UIImage *image = [UIImage imageNamed: @"bar.png"];   
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];   
}   
@end 

OK了。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章