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 自定义的主要内容,如果未能解决你的问题,请参考以下文章

自定义 UISearchBar 结果单元格

自定义 UISearchbar

UISearchBar 自定义

自定义UISearchBar

如何为自定义的 UISearchBar 实现 scopeButtonTitles?

自定义UISearchBar