2015-07-25 2 views
9

Итак, в Xcode я пытаюсь создать бесшовную панель поиска. Так что я пытаюсь повторить что-то вроде этогоУдалить границу между панелью поиска и поиска

enter image description here

Обратите внимание, как строка состояния является таким же цветом, как строка поиска. Теперь вот результат моего подхода.

enter image description here

Что я сделал добавить View, чтобы скрыть строку состояния по умолчанию с синим фоном. Затем я добавил панель поиска и изменил ее на синий. По какой-то причине я получаю черную границу между ними, что разрушает «бесшовный» дизайн. Любые идеи о том, как я могу удалить черную границу в Свифт?

+0

, который, как представляется, работает: https://stackoverflow.com/questions/6868214/remove-the-1px-border-under-uisearchbar/6868227#6868227 был просмотрен пользователем: http: // jslim.net/blog/2014/07/14/remove-the-1px-shadow-from-uisearchbar/ – MrMuetze

ответ

17

Для прошивки 7+:

searchBar.backgroundImage = UIImage() 

В противном случае это будет работать на все версии IOS:

searchBar.layer.borderWidth = 1 
searchBar.layer.borderColor = thatBlueColor.CGColor 
+0

В противном случае часть должна работать и для iOS 7+, согласно этому источнику: http://jslim.net/blog/2014/07/14/remove-the-1px-shadow-from-uisearchbar/ – MrMuetze

+0

Да, вы правы. Тем не менее, я предпочитаю верхнюю. Это чище и не требует, чтобы у вас был цвет под рукой. – Oxcug

+0

Это правда :) – MrMuetze

4

В моем случае, за край панели поиска, необходимого для заморить также Панель навигации.

C# код:

NavigationController.NavigationBar.ShadowImage = new UIImage(); 
NavigationController.NavigationBar.SetBackgroundImage (new UIImage(), UIBarMetrics.Default); 

Swift код:

self.navigationController.navigationBar.shadowImage = UIImage() 
self.navigationController.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default) 
+0

Вопрос был связан с Swift, а не с C#. –

+0

Добавлен код Swift ... –

0

Я нашел ответы на эти вопросы, чтобы быть более сложными, чем они должны быть. Вы можете просто изменить ограничение, которое привязывает вид searchBar, а другой - к -1pt, чтобы он точно совпадал с высотой поля searchBar.

1

Лучшее решение для удаления верхней и нижней границы по умолчанию является:

Чтобы установить новый пустой макет SearchBar фона в viewDidLoad, например:

searchBar.backgroundImage = UIImage() 
1

В Xcode 8.3 и Swift 3

  1. Создайте выход из своей панели поиска в ViewController (я назвал мой поискBarOutlet для этого примера).

  2. Внизу viewDidLoad вставьте следующее.

    self.searchBarOutlet.backgroundImage = UIImage()

Вы должны иметь следующее:

override func viewDidLoad() { 
    super.viewDidLoad() 

     self.searchBarOutlet.backgroundImage = UIImage() 

При запуске приложения линии уже не будет (они по-прежнему будут видны раскадровка).

Смежные вопросы