您好我使用此代码为我的小节按钮设置背景图像。我把它放在“AppDelegate.h”中
//-- set bar button image
UIImage *barButtonImage = [[UIImage imageNamed:@"bar-button"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
[[UIBarButtonItem appearance] setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
它工作正常但在我的搜索控制器中我不想使用它,因为它使我的“搜索”按钮看起来非常难看。反正只有删除搜索控制器中的背景图像? Plz帮助我。谢谢!
答案 0 :(得分:0)
在SearchController.m中尝试
[[UIBarButtonItem appearance] setBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
答案 1 :(得分:0)
[searchBarObject setImage:nil forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
这项工作对我来说..我希望它会对你有所帮助..
更新完整代码.. viewDidLoad中的 .m文件内容
//Table initialization..........................................................................
my_table = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, self.view.frame.size.height)];
//SearchBar initialization......................................................................
UISearchBar *search = [UISearchBar new];
[search sizeToFit];
search.delegate = self;
//Make the image in size 20x20................................................................
UIImage *img = [UIImage imageNamed:@"apple.jpg"];
UIGraphicsBeginImageContextWithOptions(CGSizeMake(20, 20), YES, 0);
[img drawInRect:CGRectMake(0, 0, 20, 20)];
UIImage *img2 = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//Set the image for the UISearchbarIconSearch...................................................
[search setImage:img2 forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
search.barStyle = UIBarStyleBlackTranslucent;
[my_table setTableHeaderView:search];
[my_table reloadData];
//SearchDisplay initialization..................................................................
UISearchDisplayController *display = [[UISearchDisplayController alloc]initWithSearchBar:search contentsController:self];
sbc = display; //
display.delegate = self;
display.searchResultsDataSource = self;
display.searchResultsDelegate = self;
my_table.dataSource = self;
my_table.delegate = self;
[self.view addSubview:my_table];
.h文件。
@interface ViewController : UIViewController<UITableViewDataSource, UITableViewDelegate, UISearchBarDelegate, UISearchDisplayDelegate>
{
NSArray *table_array;
UITableView *my_table;
UISearchDisplayController *sbc;
NSArray *filtered;
}
@end
这是我更改搜索图标图片的代码......
答案 2 :(得分:0)
如果要删除搜索控制器的背景图像
[[searchBar.subviews objectAtIndex:0] removeFromSuperview];
您可以添加清晰的背景图片。
UIImageView *searchImage=[[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 319.0, 44.0)];
[searchImage setImage:[UIImage imageNamed:@"searchbg.png"]];
[searchBar insertSubview:searchImage atIndex:1];
答案 3 :(得分:0)
您可以设置自定义的位置,例如在tis片段中我只想在UINavigationBar中使用它。
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
未在xcode中检查但概念正常。这里是文档+ (instancetype)appearanceWhenContainedIn:(Class )ContainerClass,...。
很棒的指南也在这里:NSHipster。
正如您所看到的那样是一个可变参数API,因此您可以设置更多类
PS:我不知道它是否是想要的效果,但是这种反射是由于图像中的错误插图造成的。