UINavigationBar:
@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
UIToolBar:
@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
UITabBar:
@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
或者任何一个程序可以执行到的地方
写下如下代码,当然,你的searchBar得创建之后才行
且看删除代码:
[[_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