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了。
@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了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.