2012-01-30 19 views

回答

0

顯然這是定製UISearchBar的灰色區域。我設法使用另一種方式移動導航欄外的searchBar。

0

使用以下代碼來查找iphone的方向,然後設置相應的SearchBar框架。在ViewDidLoad中設置SearchBar(縱向模式)的框架。

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(-5.0, 0.0, 320.0, 44.0)]; 
    UIView *searchBarView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 310.0, 44.0)]; 
    searchBar.delegate = self; 
    [searchBarView addSubview:searchBar]; 
    self.navigationItem.titleView = searchBarView; 
} 

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration { 
    if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {  

     UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(-5.0, 0.0, 320.0, 44.0)]; 
     UIView *searchBarView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 310.0, 44.0)]; 
     searchBar.delegate = self; 
     [searchBarView addSubview:searchBar]; 
     self.navigationItem.titleView = searchBarView; 
    } 
    else 
    { 
     UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(-5.0, 0.0, 480.0, 44.0)]; 
     UIView *searchBarView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 470.0, 44.0)]; 
     searchBar.delegate = self; 
     [searchBarView addSubview:searchBar]; 
     self.navigationItem.titleView = searchBarView; 

    } 
} 

它一定會幫助你。

+0

不幸的是,這並沒有幫助。你總是將身高設置爲44分。但橫向模式下的navigationController的高度爲32點。像我這樣需要searchBar高度30點或更少(1點頂部/底部邊距)。 – 2012-01-31 11:26:18

+0

改變searchBar的高度,你可以在這段代碼的其他部分查看這個searchBar的高度UIView * searchBarView = [[UIView alloc] initWithFrame:CGRectMake(0.0,0.0,470.0,44.0)]; – 2012-01-31 11:29:34

+0

不,這也沒有幫助。顯然,searchBar的高度不能改變...... – 2012-01-31 12:00:36

相關問題