如何在 Swift3 中的 UISearchBar 上设置边框底部

How to set border bottom on UISearchBar in Swift3

我想指定 UISearchBar 的底部边框颜色。我看过很多有助于摆脱边框或整体设置边框颜色的答案,但我只想为底部边框设置边框颜色。这是我的代码:

searchController.searchBar.layer.borderWidth = 1 searchController.searchBar.layer.borderColor = UIColor.white.cgColor

有没有办法为设置底部边框的边框颜色?

如果您使用的是 swift 版本低于 3(<3.0),那么下面的代码应该可以工作 -

let border = CALayer()
let width = CGFloat(2.0)
border.borderColor = UIColor.red.cgColor
border.frame = CGRect(x: 0, y: searchBar.frame.size.height + width, width:  searchBar.frame.size.width, height: searchBar.frame.size.height)
        
border.borderWidth = width
searchBar.layer.addSublayer(border)
searchBar.layer.masksToBounds = true

我正在使用 swift 3.0,但在添加此评论之前,我最终测试了此功能,但它对我不起作用。我不确定为什么,但这是在任何元素底部显示边框的正确代码。

我尝试在搜索栏底部使用 insertinglayout,但它不起作用。

self.view.layer.insertSublayer(border, below:searchBar.layer)

我不会告诉你这是答案。但这会让您了解如何在特定项目的底部添加布局。

只需像这样向您的 textField 添加一个子视图

let frame = CGRectMake(0, textField.frame.size.height - 1, textField.frame.size.width, 1)
let border = UIView(frame: frame)
border.backgroundColor = UIColor.whiteColor()
textField.addSubview(border)