首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在IOS中移除uibaritem背景镜像?

如何在IOS中移除uibaritem背景镜像?
EN

Stack Overflow用户
提问于 2013-11-25 15:26:54
回答 4查看 233关注 0票数 0

您好,我使用此代码来设置我的栏按钮的背景图像。我把它放在"AppDelegate.h“中

代码语言:javascript
复制
  //-- set bar button image
    UIImage *barButtonImage = [[UIImage imageNamed:@"bar-button"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];

    [[UIBarButtonItem appearance] setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

它工作得很好,但在我的搜索控制器中,我不想使用它,因为它使我的“搜索”按钮看起来非常丑陋。有没有办法只在搜索控制器中删除背景图像?请帮帮我。谢谢!

EN

回答 4

Stack Overflow用户

发布于 2013-11-25 15:30:21

在你的SearchController.m中尝试

代码语言:javascript
复制
[[UIBarButtonItem appearance] setBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
票数 0
EN

Stack Overflow用户

发布于 2013-11-25 15:31:57

代码语言:javascript
复制
[searchBarObject setImage:nil forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];

这对我来说很有效..我希望它能对你有所帮助。

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

代码语言:javascript
复制
//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文件。

代码语言:javascript
复制
@interface ViewController : UIViewController<UITableViewDataSource, UITableViewDelegate, UISearchBarDelegate, UISearchDisplayDelegate>

{
    NSArray *table_array;
    UITableView *my_table;
    UISearchDisplayController *sbc;
    NSArray *filtered;
}
@end

这是我的代码,它改变了搜索图标的图像...

票数 0
EN

Stack Overflow用户

发布于 2013-11-25 15:56:16

如果您想要删除搜索控制器的背景图像

代码语言:javascript
复制
[[searchBar.subviews objectAtIndex:0] removeFromSuperview];

你可以给它添加清晰的背景图片。

代码语言:javascript
复制
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];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20186860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档