从UISearchController搜索栏swift中删除黑色边框

toi*_*ing 2 ios swift

我的tableView中有一个UISearchController.另请注意,顶部有一个导航项.我的问题是,当我加载页面时,我的顶部和底部都有黑色边框,但是,当我单击搜索栏时,它不存在.

页面加载时搜索栏(带黑色边框):

在此输入图像描述

单击搜索栏(无黑色边框)后:

在此输入图像描述

这是相关的代码:

let searchController = UISearchController(searchResultsController: nil)
Run Code Online (Sandbox Code Playgroud)

在viewDidLoad中:

searchController.searchBar.barTintColor = UIColor.redColor()
        searchController.searchBar.tintColor = UIColor.whiteColor()
Run Code Online (Sandbox Code Playgroud)

我遵循了几个类似的问题,并在上​​述行之后进行了以下更改viewDidLoad():

1) searchController.searchBar.backgroundImage = UIImage()

2) searchController.searchBar.searchBarStyle = UISearchBarStyle.Minimal

3) searchController.searchBar.layer.borderColor = UIColor.clearColor().CGColor

4)

 searchBar.layer.borderWidth = 1
    searchBar.layer.borderColor = UIColor.whiteColor().CGColor
Run Code Online (Sandbox Code Playgroud)

没有用.这是我使用代码的顺序的问题,或者我将如何摆脱这些线?

toi*_*ing 5

经过大量搜索后解决了这个问题.这是我如何做到的.在viewDidLoad,添加以下行:

self.searchController.searchBar.translucent = false
    self.searchController.searchBar.backgroundImage = UIImage()
    self.searchController.searchBar.barTintColor = UIColor.redColor()
    self.searchController.searchBar.tintColor = UIColor.whiteColor()
Run Code Online (Sandbox Code Playgroud)

之后在app.delegate文件中didFinishLaunchingWithOptions添加了以下代码:

let backgroundColor = UIColor.redColor()
        let foregroundColor = UIColor.whiteColor()


        UIApplication.sharedApplication().statusBarStyle = .LightContent

        UINavigationBar.appearance().shadowImage = UIImage()

        UINavigationBar.appearance().setBackgroundImage(backgroundColor.toImage(), forBarMetrics: UIBarMetrics.Default)

        UINavigationBar.appearance().tintColor = foregroundColor

        UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: foregroundColor]
Run Code Online (Sandbox Code Playgroud)

在app.delegate文件上也需要这个扩展名(放在该类之外)

extension UIColor{
    func toImage() -> UIImage {
        let rect = CGRectMake(0, 0, 1, 1)
        UIGraphicsBeginImageContextWithOptions(rect.size, true, 0)
        self.setFill()
        UIRectFill(rect)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }
}
Run Code Online (Sandbox Code Playgroud)

(感谢Noel 对此答案的延期)

最后,期望的结果:

在此输入图像描述