如果正下方的導航欄確保搜索欄是,我會使用自動佈局像這樣:
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];
由於設置自定義背景。它在constraintsWithVisualFormat中給我一個錯誤。它說searchBar不是視圖字典中的關鍵。我嘗試了其他一些事情,並得到相同的錯誤。再次感謝您的幫助。 – user1681673
再次嘗試使用我添加的額外行。 – Byte
我嘗試了您的更改的代碼。構建的代碼,但視圖看起來與圖片相同。 – user1681673