2015-07-25 7 views
9

Quindi in Xcode sto provando a creare una barra di ricerca continua. Così sto cercando di replicare qualcosa di simileRimuovi il bordo tra Visualizza e Barra di ricerca

enter image description here

Si noti come la barra di stato è lo stesso colore della barra di ricerca. Ora ecco il risultato del mio approccio.

enter image description here

Quello che ho fatto è stato aggiungere una visualizzazione per coprire la barra di stato di default con lo sfondo blu. Poi ho aggiunto una barra di ricerca e ho cambiato il suo sfondo in blu. Per qualche motivo finisco per avere un bordo nero tra i due, che rovina il design "senza cuciture". Qualche idea su come rimuovere il bordo nero in Swift?

+0

che sembra funzionare: https://stackoverflow.com/questions/6868214/remove-the-1px-border-under-uisearchbar/6868227#6868227 è stato provato da questo utente: http: // jslim.net/blog/2014/07/14/remove-the-1px-shadow-from-uisearchbar/ – MrMuetze

risposta

17

Per iOS 7+:

searchBar.backgroundImage = UIImage() 

Altrimenti questo funzionerà su tutte le versioni di iOS:

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

La parte altrimenti dovrebbe funzionare anche per iOS 7+, secondo questa fonte: http://jslim.net/blog/2014/07/14/remove-the-1px-shadow-from-uisearchbar/ – MrMuetze

+0

Sì, hai ragione. Tuttavia, preferisco quello superiore. È più pulito e non richiede di avere il colore a portata di mano. – Oxcug

+0

È vero :) – MrMuetze

4

Nel mio caso, oltre il bordo della barra di ricerca necessario per prendere il bordo fuori anche il barra di navigazione.

codice C#:

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

Swift code:

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

La domanda era relativa a Swift, non C#. –

+0

Aggiunto codice Swift ... –

0

ho trovato queste risposte per essere più complicate di quello che doveva essere. Puoi semplicemente modificare il vincolo che lega la vista della barra di ricerca e l'altra vista a -1pts in modo che si sovrapponga esattamente all'altezza del margine della barra di ricerca.

1

La soluzione migliore per rimuovere superiore e inferiore confini di default è:

Per impostare un nuovo layout Searchbar sfondo vuoto in viewDidLoad ad esempio:

searchBar.backgroundImage = UIImage() 
1

in Xcode 8.3 e Swift 3

  1. Crea una presa dalla barra di ricerca sul ViewController (ho chiamato il mio searchBarOutlet per questo esempio).

  2. Sotto viewDidLoad inserire quanto segue.

    self.searchBarOutlet.backgroundImage = UIImage()

Si dovrebbe avere il seguente:

override func viewDidLoad() { 
    super.viewDidLoad() 

     self.searchBarOutlet.backgroundImage = UIImage() 

Quando si esegue la vostra applicazione delle linee sarà andato (che sarà ancora visibile su storyboard).

Problemi correlati