UISearchBar 自定义
Posted
技术标签:
【中文标题】UISearchBar 自定义【英文标题】:UISearchBar Customization 【发布时间】:2013-10-22 04:38:55 【问题描述】:我正在尝试自定义 UISearchBar,但我很难使用它。
这是我的搜索栏目前的样子。我想要做的是在整个 uisearchbar 上设置一个 uiimage。我试过 setSearchFieldBackgroundImage 但它不会影响搜索栏的文本字段部分。如何将图像放在白色部分?我还想将白色部分延伸到边缘以在所有边上都有相等的边距。
【问题讨论】:
***.com/questions/19226922/… 使用 UITextfield 并将其放入 UIVIew() 中。 【参考方案1】:为了图片的目的你可以使用这个,别忘了导入 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 的框架。
【讨论】:
【参考方案2】:希望对你有帮助:
我使用的图案图片:
@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")!)
结果如下:
【讨论】:
以上是关于UISearchBar 自定义的主要内容,如果未能解决你的问题,请参考以下文章