UISearchBar 与文本背景

发布于 2024-11-08 18:57:43 字数 153 浏览 0 评论 0原文

有人知道是否可以更改 UISearchBar 的背景吗?我的意思是在内部(参见附图),我认为该组件是一个 UITextField。

在此处输入图像描述

谢谢!

Do somebody know if it's possible change the UISearchBar's background? I mean to the inside (see image attached), i think that component is a UITextField.

enter image description here

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

百变从容 2024-11-15 18:57:43

我做到了!我必须对 UISearchBar 进行子类化并使用以下内容覆盖layoutSubviews:

- (void)layoutSubviews {
    UITextField *searchField;
    NSUInteger numViews = [self.subviews count];
    for(int i = 0; i < numViews; i++) {
       if([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) {
        searchField = [self.subviews objectAtIndex:i];
       }
    }
    if(!(searchField == nil)) {
       searchField.textColor = [UIColor whiteColor];
       [searchField setBackground: [UIImage imageNamed:@"SearchBarBackground.png"] ];
       [searchField setBorderStyle:UITextBorderStyleNone];
    }

    [super layoutSubviews];
}

该图像是完整的背景图像!

I did it! I had to subclassing UISearchBar and override the layoutSubviews with:

- (void)layoutSubviews {
    UITextField *searchField;
    NSUInteger numViews = [self.subviews count];
    for(int i = 0; i < numViews; i++) {
       if([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) {
        searchField = [self.subviews objectAtIndex:i];
       }
    }
    if(!(searchField == nil)) {
       searchField.textColor = [UIColor whiteColor];
       [searchField setBackground: [UIImage imageNamed:@"SearchBarBackground.png"] ];
       [searchField setBorderStyle:UITextBorderStyleNone];
    }

    [super layoutSubviews];
}

The image is a complete background image!

老子叫无熙 2024-11-15 18:57:43

乔纳森·纳金(Jonathan Naguin)的答案也很好,但维护代码质量的单行答案是

self.searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"Searchbox.png"] forState:UIControlStateNormal];

Jonathan Naguin answer is also good but the single line answer for maintain code quality is

self.searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"Searchbox.png"] forState:UIControlStateNormal];
猥琐帝 2024-11-15 18:57:43

我认为没有 API 可以让你改变背景颜色。该组件是 UITextField 的私有子类。即使我们可以通过 hack 来达到效果,但任何人依赖它都是不合适的。

I don't think there is an API that allows you to alter the background color. That component is a private subclass of a UITextField. It wouldn't be appropriate for anybody to rely on it even if we can achieve the effect using a hack.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文