答案 0 :(得分:0)
您可以使用透明边框和背景以及下方设置不可见的搜索栏,只需添加图像/绘制子视图(如果您想要的形状)。我认为显式添加UIView:layer.cornerRadius = 4.0应该可以工作:)
答案 1 :(得分:0)
是的,您绝对可以将UISearchbar的外观更改为显示的图像。
基本上,您需要自定义UISearchBar和关联的UITextField的属性,并修改搜索按钮的可见性。
我找到了“这篇文章”,它将帮助您达到预期的效果。
http://en.codecloud.net/989.html
希望这有帮助。
答案 2 :(得分:0)
您可以将UISearchbar的外观自定义为:
// Get UISearchBar UITextFiled
let txfSearchField = Searchbar.value(forKey: "_searchField") as! UITextField
// set Search Bar texfield corder radius
txfSearchField.layer.cornerRadius = 8.0
// set Search Bar texfield border colour and width
txfSearchField.layer.borderWidth = 2.0
txfSearchField.layer.borderColor = UIColor.lightGray.cgColor
// set Search Bar tintColor.
Searchbar.barTintColor = UIColor.white
// Change the search bar placeholder text color
let placeholderlabels = txfSearchField.value(forKey: "_placeholderLabel") as! UILabel
placeholderlabels.textColor = UIColor.lightGray
答案 3 :(得分:0)
如果您在不同的viewControllers中有许多自定义搜索栏。我使用了正确的答案并为searchBar制作了自定义类。我在故事板中使用过它。
import UIKit
class CustomSearchBar: UISearchBar {
func setup(){
// set Search Bar tintColor.
self.backgroundImage = UIImage()
self.barTintColor = UIColor.white
// Get UISearchBar UITextFiled
guard let textSearchField = self.value(forKey: "_searchField") as? UITextField else {
return
}
// set Search Bar texfield corder radius
textSearchField.layer.cornerRadius = 6.0
// set Search Bar texfield border colour and width
textSearchField.layer.borderColor = UIColor("#446D95").cgColor
textSearchField.layer.borderWidth = 1.0
textSearchField.layer.masksToBounds = true
}
}
仅在您要使用searchBar的viewController的viewDidLoad中调用设置函数。
override func viewDidLoad(){
searchBar.setup()
}