我的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)
没有用.这是我使用代码的顺序的问题,或者我将如何摆脱这些线?
经过大量搜索后解决了这个问题.这是我如何做到的.在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 对此答案的延期)
最后,期望的结果:
| 归档时间: |
|
| 查看次数: |
3846 次 |
| 最近记录: |