我正在尝试自定义 UISearchBar,但我很难使用它。
这就是我的搜索栏目前的样子。我想要做的是在整个 uisearchbar 上设置一个 uiimage。我试过 setSearchFieldBackgroundImage 但它不会影响搜索栏的文本字段部分。如何将图像放在白色部分?我还想将白色部分扩展到边缘以在所有边上都有相等的边距。
我正在尝试自定义 UISearchBar,但我很难使用它。
这就是我的搜索栏目前的样子。我想要做的是在整个 uisearchbar 上设置一个 uiimage。我试过 setSearchFieldBackgroundImage 但它不会影响搜索栏的文本字段部分。如何将图像放在白色部分?我还想将白色部分扩展到边缘以在所有边上都有相等的边距。
出于图像目的,您可以使用这个,不要忘记导入 Quartzcore 框架
[searchbar setBackgroundImage:[UIImage imageNamed:@"base_200x50.png"]];
[searchbar setTranslucent:YES];
UITextField *txtSearchField = [searchbar valueForKey:@"_searchField"];
[txtSearchField setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"base_200x50.png"]]];
[txtSearchField setBorderStyle:UITextBorderStyleRoundedRect];
txtSearchField.layer.borderWidth = 8.0f;
txtSearchField.layer.cornerRadius = 10.0f;
txtSearchField.layer.borderColor = [UIColor clearColor].CGColor;
要扩展 textfeild,您可以设置 txtSearchField 的框架。
我希望这可以帮助你:
我使用的图案图像:
@IBOutlet weak var sbSearchBar: UISearchBar!
// if you wan to set background color for searchbar, except field
func setupSearchbarBackgroundImage() -> Void {
sbSearchBar.setBackgroundImage(UIImage(named: "pattern2"), for: UIBarPosition.any, barMetrics: UIBarMetrics.default)
}
结果:
func setupSearchbar() -> Void {
// if you wan to set background color for field only
if let textfield = sbSearchBar.value(forKey: "searchField") as? UITextField {
textfield.backgroundColor = UIColor(patternImage: UIImage(named: "pattern2")!)
}
}
这是结果: