2017-09-01 1 views
1

Mit Swift 3 und Testen auf meinem Gerät habe ich mehrere Codes ausprobiert, die den schwarz/grauen Rahmen entfernen sollten, aber nicht entfernt werden. Das Seltsame daran ist, dass die Grenze dort ist, aber sobald ich auf die searchBar klicke, die bereit ist zu tippen, ist der Rahmen nicht mehr da, bis die Ansicht wieder geladen wird. Also die Grenze wird nur angezeigt, bis ich auf die Suchleiste klicke.Swift: Schwarz/grauer Rahmen bei SearchBar geht nicht weg, bis geklickt wird

Dies ist mein Code:

// Coloring TableView 
myTableView.backgroundColor = UIColor.white 
myTableView.sectionIndexBackgroundColor = UIColor.black 
myTableView.sectionIndexColor = UIColor.black 

// Search Bar 
searchController.searchBar.backgroundColor = UIColor.white 
searchController.searchBar.barTintColor = UIColor.white 

// Coloring SearchBar Cancel button 
let cancelButtonAttributes: NSDictionary = [NSForegroundColorAttributeName: UIColor.black] 
UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes as? [String : AnyObject], for: UIControlState.normal) 

// Scope: Selected text 
let titleTextAttributesSelected = [NSForegroundColorAttributeName: UIColor.white] 
UISegmentedControl.appearance().setTitleTextAttributes(titleTextAttributesSelected, for: .selected) 

// Scope: Normal text 
let titleTextAttributesNormal = [NSForegroundColorAttributeName: UIColor.black] 
UISegmentedControl.appearance().setTitleTextAttributes(titleTextAttributesNormal, for: .normal) 

// Coloring Scope Bar 
UISegmentedControl.appearance().tintColor = UIColor.black 
UISegmentedControl.appearance().backgroundColor = UIColor.white 

// Search Bar 
searchController.searchResultsUpdater = self 
searchController.dimsBackgroundDuringPresentation = false 
definesPresentationContext = true 
myTableView.tableHeaderView = searchController.searchBar 

// Scope Bar 
searchController.searchBar.scopeButtonTitles = ["All", "Released", "Unreleased", "Open Beta"] 
searchController.searchBar.delegate = self 

let searchController = UISearchController(searchResultsController: nil) 

// SEARCH BAR: Filtering Content 
func filterContentForSearchText(searchText: String, scope: String = "All") { 

    filteredFollowedArray = followedArray.filter { Blog in 

     let categoryMatch = (scope == "All") || (Blog.blogType == scope) 

     return categoryMatch && (Blog.blogName.lowercased().contains(searchText.lowercased())) 
    } 

    filteredBlogArray = blogArray.filter { Blog in 

     let categoryMatch = (scope == "All") || (Blog.blogType == scope) 

     return categoryMatch && (Blog.blogName.lowercased().contains(searchText.lowercased())) 
    } 

    myTableView.reloadData() 
} 

// SEARCH BAR: Updating Results 
func updateSearchResults(for searchController: UISearchController) { 

    filterContentForSearchText(searchText: searchController.searchBar.text!) 
} 

func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {} 

func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {} 

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {} 

// SEARCH BAR: Scope 
func searchBar(_ searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) { 

    filterContentForSearchText(searchText: searchBar.text!, scope: searchBar.scopeButtonTitles![selectedScope]) 
} 

// SEARCH BAR: Updating Scope 
func updateSearchResultsForSearchController(searchController: UISearchController) { 

    let searchBar = searchController.searchBar 
    let scope = searchBar.scopeButtonTitles![searchBar.selectedScopeButtonIndex] 

    filterContentForSearchText(searchText: searchController.searchBar.text!, scope: scope) 
} 

// Deallocating Search Bar 
deinit{ 
    if let superView = searchController.view.superview { 
     superView.removeFromSuperview() 
    } 
} 

Dies ist, wie die SearchBar aussieht, wenn der Blick zuerst geladen wird, ist die Linie auf der Oberseite grau (ich nicht, warum hier die Grau verblasste Sie sieht so, kann es nicht sehen, aber eine sehr dünne Linie von grau ist es):

pic1

und nachdem Sie die SearchBar klicken, wird die Linie schwarz:

pic2

Und dies geschieht, wenn ich diesen Code hinzufügen, die ich genannt wurde:

// Search Bar Border 
let searchBar = searchController.searchBar 
searchBar.backgroundImage = UIImage() 

pic3

und das ist, nachdem ich mit diesem Code auf das SearchBar klicken, und wie es sollte aussehen . Keine Grenze:

pic4

Antwort

0

Sind Überprüfung Sie dieses Verhalten in der kleinen Größe Simulator nur? Die schwarze Linie in Ihrem zweiten Screenshot sieht im ersten Screenshot nicht mit Ihrer Suchleiste verbunden aus. Es sieht stattdessen wie der untere Teil der Statusleiste aus. Manchmal kann der Simulator dünne Linien nicht korrekt anzeigen. Ich würde die Simulatorgröße auf den Größten oder Besseren noch erhöhen, es auf einem Telefon testen.

+0

das ist alles auf meinem Gerät, iPhone 6s – BroSimple

Verwandte Themen