曲线搜索栏Swift 4

曲线搜索栏Swift 4,swift,uisearchbar,uinavigationitem,uisearchcontroller,programmatically,Swift,Uisearchbar,Uinavigationitem,Uisearchcontroller,Programmatically,我在导航控制器上以编程方式更改搜索栏设计时遇到问题。我只想使搜索栏曲线如下图所示: 我在堆栈溢出中尝试了很多示例,但仍然未能更改形状。下面是它现在的样子: 下面是源代码,关于已经完成的工作: //MARK for searchBar UI searchController.dimsBackgroundDuringPresentation = false searchController.hidesNavigationBarDuringPresentation = false

我在导航控制器上以编程方式更改搜索栏设计时遇到问题。我只想使搜索栏曲线如下图所示:

我在堆栈溢出中尝试了很多示例,但仍然未能更改形状。下面是它现在的样子:

下面是源代码,关于已经完成的工作:

//MARK for searchBar UI
    searchController.dimsBackgroundDuringPresentation = false
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.searchBar.placeholder = " Search for programs..."
    searchController.searchBar.sizeToFit()
    searchController.searchBar.isTranslucent = false
    searchController.searchBar.backgroundImage = UIImage()
    searchController.searchBar.delegate = self
    navigationItem.titleView = searchController.searchBar
    self.searchController.searchBar.layer.cornerRadius = 20.0
    self.searchController.searchBar.clipsToBounds = true
    // SearchBar text
    let textFieldInsideUISearchBar = searchController.searchBar.value(forKey: "searchField") as? UITextField
    textFieldInsideUISearchBar?.borderStyle = .roundedRect
    textFieldInsideUISearchBar?.font = textFieldInsideUISearchBar?.font?.withSize(14)

现在,我真的不知道如何更改它,提前谢谢。

增加拐角半径应该可以

增加拐角半径应该可以

这将帮助您

let searchBar = UISearchBar()
viewDidLoad()上

上面的代码将为您提供以下输出

这将对您有所帮助

let searchBar = UISearchBar()
viewDidLoad()上

上面的代码将为您提供以下输出


您可以使用try和try
searchBarContainer
heighttry增加
searchBar.layer.cornerRadius
value@PPL对不起,我试过了。但是仍然失败
self.searchController.searchBar.layer.cornerRadius=self.searchController.searchBar.frame.height/2.0
您可以尝试使用和尝试
searchBar容器
heighttry增加
searchBar.layer.cornerRadius
value@PPL对不起,我试过了。但是仍然失败了,谢谢你,伙计,我意识到只需要添加这一行`如果让backgroundview=textfield.subviews.first{backgroundview.backgroundColor=UIColor.blue backgroundview.layer.cornerRadius=20;backgroundview.clipsToBounds=true;}`谢谢,伙计,我意识到只需要添加这一行`如果让backgroundview=textfield.subviews.first{backgroundview.backgroundColor=UIColor.blue backgroundview.layer.cornerRadius=20;backgroundview.clipsToBounds=true;}`