如何摆脱 UISearchBar 的边框?
Posted
技术标签:
【中文标题】如何摆脱 UISearchBar 的边框?【英文标题】:How to get rid of border of UISearchBar? 【发布时间】:2017-04-16 03:07:10 【问题描述】:问题
我在 UIView 中嵌入了一个 UISearchController。搜索栏占据了整个视图的大小。但是,我不知道如何摆脱这个灰色边框。我希望搜索栏占据视图的整个大小,而没有那个讨厌的灰色边框。我怎样才能摆脱它?
我试过了
searchController?.searchBar.backgroundImage = UIImage()
但所做的只是使灰色边框清晰(更不用说它使 searchController 的 searchResultsController 不显示):
我希望边框消失,搜索栏占据 UIView 的整个框架。
【问题讨论】:
您是否添加了约束以将其固定到视图? @paper1111 我不使用约束。我通常使用框架。但是,如果您认为约束会起作用,您能否发布一个答案,其中包含我需要实现所述约束的代码? 您使用 Storyboard 还是 XIB? @paper1111 不,我都是以编程方式完成的 【参考方案1】:let SEARCH_BAR_SEARCH_FIELD_KEY = "searchField"
let SEARCH_BAR_PLACEHOLDER_TEXT_KEY = "_placeholderLabel.textColor"
func customiseSearchBar()
searchBar.isTranslucent = true
searchBar.backgroundImage = UIImage.imageWithColor(color: UIColor.yellow, size: CGSize(width: searchBar.frame.width,height: searchBar.frame.height))
//modify textfield font and color attributes
let textFieldSearchBar = searchBar.value(forKey: SEARCH_BAR_SEARCH_FIELD_KEY) as? UITextField
textFieldSearchBar?.backgroundColor = UIColor.yellow
textFieldSearchBar?.font = UIFont(name: "Helvetica Neue" as String, size: 18)
textFieldSearchBar?.setValue(UIColor.yellow, forKeyPath: SEARCH_BAR_PLACEHOLDER_TEXT_KEY)
extension UIImage
class func imageWithColor(color: UIColor, size: CGSize) -> UIImage
let rect: CGRect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
UIGraphicsBeginImageContextWithOptions(size, false, 0)
color.setFill()
UIRectFill(rect)
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
这可以根据您的要求实现 UI,如果您需要对此进行更多自定义,请告诉我。顺便说一句,这是在 swift 3 中。
【讨论】:
以上是关于如何摆脱 UISearchBar 的边框?的主要内容,如果未能解决你的问题,请参考以下文章
iOS:带有 UISearchdisplaycontroller 的 UISearchBar 通过单击搜索栏崩溃
UISearchController 结果 TableViewController 在 UISearchBar 为空时不清除结果