Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在IOS中删除uibaritem背景图像?_Ios_Image_Uibarbuttonitem - Fatal编程技术网

如何在IOS中删除uibaritem背景图像?

如何在IOS中删除uibaritem背景图像?,ios,image,uibarbuttonitem,Ios,Image,Uibarbuttonitem,嗨,我用这个代码为我的工具栏按钮设置背景图像。我把它放在“AppDelegate.h”里 它工作得很好,但在我的搜索控制器中,我不想使用它,因为它使我的“搜索”按钮看起来很难看。是否仅在搜索控制器中删除背景图像?请帮帮我。谢谢 在您的SearchController中。我试试看 [[UIBarButtonItem appearance] setBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsDefa

嗨,我用这个代码为我的工具栏按钮设置背景图像。我把它放在“AppDelegate.h”里

它工作得很好,但在我的搜索控制器中,我不想使用它,因为它使我的“搜索”按钮看起来很难看。是否仅在搜索控制器中删除背景图像?请帮帮我。谢谢


在您的SearchController中。我试试看

[[UIBarButtonItem appearance] setBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
这是我的工作。。我希望这对你有帮助

已更新完整代码。。 .m viewDidLoad中的文件内容

//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
@界面ViewController:UIViewController
{
NSArray*表_数组;
UITableView*我的表格;
UISearchDisplayController*sbc;
NSArray*已过滤;
}
@结束

这是我的代码,如果要删除搜索控制器的背景图像,请更改搜索图标图像…

[[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];

您可以设置自定义的位置,例如,在tis代码段中,我只希望它位于UINavigationBar中

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
未在xcode中签入,但概念正常。这里是文档。
伟大的指南也在这里:。 正如您所看到的,这是一个可变参数API,因此您可以设置更多的类


PS:我不知道这是否是想要的效果,但这种反射是由于图像中的插入错误造成的。

什么是searchBarObject??“我不知道如何定义它?”tommy searchBarObject是搜索的实例bar@TamilKing我使用这个:[self.searchDisplayController.searchBar setImage:nil forSearchBarIcon:UISearchBarIconSearch状态:uicontrolstatennormal];但它没有工作我有这个错误使用未声明的标识符'searchBarObject',你可以跟踪Seach控制器NSArray*子视图=[view subview];然后删除你想要的任何视图的背景。如何删除它你能给我示例代码THNKI已添加代码plz查看新答案并让我知道第一个对我不起作用,第二个只是搜索栏的边框已清除按钮“取消”的背景仍然相同
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];
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];