我使用下面发布的代码将搜索栏添加到导航栏。
我正在让所有内容正确显示但是有一个背景(主要是我无法摆脱的UIBarButtonItem)。 - 请查看iPad的屏幕截图。
有没有办法摆脱搜索栏后面显示的蓝色backgorund?
由于
开发。
- (void) viewDidLoad {
[super viewDidLoad];
UIView *hackView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 250, 30)];
hackView.backgroundColor = [UIColor clearColor];
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 250, 30)];
//[searchBar sizeToFit];
[searchBar setBackgroundColor:[UIColor clearColor]];
[hackView addSubview:searchBar];
[searchBar release];
UIBarButtonItem *hackItem = [[UIBarButtonItem alloc] initWithCustomView:hackView];
[hackItem setWidth:250];
self.navigationItem.rightBarButtonItem = hackItem;
[hackView release];
[hackItem release];
}
答案 0 :(得分:1)
我认为问题在于您要添加额外的UIView
。即使它具有clearColor
背景,它也会抓取为CGRect
创建的UIView *hackView
。摆脱它,只需将UISearchBar
添加到UIBarButtonItem
,它就可以解决显示问题。
另外,请不要忘记实施UISearchBarDelegate
以获得正确的功能。
答案 1 :(得分:0)
我使用以下代码解决了这个问题。
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 200, 20)];
UIBarButtonItem *navRight = [[UIBarButtonItem alloc] initWithCustomView:searchBar];
[[self navigationItem] setRightBarButtonItem:navRight];
[searchBar release];
[navRight release];