1

我正在尝试自定义 UISearchBar,但我很难使用它。

在此处输入图像描述

这就是我的搜索栏目前的样子。我想要做的是在整个 uisearchbar 上设置一个 uiimage。我试过 setSearchFieldBackgroundImage 但它不会影响搜索栏的文本字段部分。如何将图像放在白色部分?我还想将白色部分扩展到边缘以在所有边上都有相等的边距。

4

2 回答 2

0

出于图像目的,您可以使用这个,不要忘记导入 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 的框架。

于 2013-10-22T05:12:00.097 回答
0

我希望这可以帮助你:

我使用的图案图像:

在此处输入图像描述

@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")!)

    }
}

这是结果:

在此处输入图像描述

于 2018-01-12T15:27:49.690 回答