2013-09-24 175 views
0

我以編程方式向我的應用程序添加了UISearch,並在界面構建器中添加了UINavigation欄。當我添加搜索欄時,它在搜索欄和導航欄之間留下了一個小小的空白。有沒有辦法將它們合併在一起?謝謝。UINavigationBar和UISearchBar之間的小差距

Screenshot

self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, 44.0)]; 
self.searchBar.delegate = self; 
self.searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
self.searchBar.showsCancelButton = NO; 
[self.view addSubview:self.searchBar]; 

回答

1

如果正下方的導航欄確保搜索欄是,我會使用自動佈局像這樣:

self.searchBar = [[UISearchBar alloc] init]; 
self.searchBar.translatesAutoresizingMaskIntoConstraints = NO; 
self.searchBar.delegate = self; 
self.searchBar.showsCancelButton = NO; 
[self.view addSubview:self.searchBar]; 

id topLayoutGuide = self.topLayoutGuide; 
UISearchBar *searchBar = self.searchBar; //updated 

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[searchBar]|" options:0 metrics:0 views:NSDictionaryOfVariableBindings(searchBar)]]; 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[topLayoutGuide][searchBar]" options:0 metrics:0 views:NSDictionaryOfVariableBindings(searchBar, topLayoutGuide)]]; 

編輯:

我做了一些搜索,發現它不是一個缺口。這是蘋果用來將事物劃分到位的形象。有很多選擇你可以接近

1.)搜索並銷燬 - 找到UIImageView,並將其從你的欄中刪除。
Remove UIToolbar hairline in iOS 7

2)你吧

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; 
self.navigationController.navigationBar.shadowImage = [UIImage new]; 
+0

由於設置自定義背景。它在constraintsWithVisualFormat中給我一個錯誤。它說searchBar不是視圖字典中的關鍵。我嘗試了其他一些事情,並得到相同的錯誤。再次感謝您的幫助。 – user1681673

+0

再次嘗試使用我添加的額外行。 – Byte

+0

我嘗試了您的更改的代碼。構建的代碼,但視圖看起來與圖片相同。 – user1681673