菜鸟教程小白 发表于 2022-12-13 11:25:58

ios - UISearchBar 自定义类和外观


                                            <p><p>我是 iOS 开发的新手,我需要自定义 UISearchBar 外观方面的帮助。</p>

<p>这就是我想要做的事情</p>

<p> <a href="/image/RZjh7.png" rel="noreferrer noopener nofollow"><img src="/image/RZjh7.png" alt="enter image description here"/></a> </p>

<p>首先,如何摆脱周围的灰色条,然后如何更改白色文本字段的背景。</p>

<p>另外,我创建了一个扩展 UISearchBar 并将其应用于搜索栏的新类,但我不知道调用哪个方法来初始化它,比如</p>

<pre><code>- (void) viewDidLoad {}
</code></pre>

<p>在 ViewController 类中。在 UISearchBar 类中放置我的自定义代码的位置。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这是一个包含一些选项的搜索栏,更改其中一些值以根据需要调整它,如果你愿意,可以像模板一样使用它:</p>

<pre><code>    UISearchBar * _searchBar = [ init];
    ;
    ;
    ;
    ;
    ;
    ];
    ];
    .CGColor];
    ;
    ];
    ];

    [, nil] setDefaultTextAttributes:@{
                                                                                                 NSFontAttributeName:fontMagicForRegularNSHFont,
                                                                                                 NSForegroundColorAttributeName:
                                                                                                 }];

    [, nil] setTitleTextAttributes:@{
                                                                                                   NSForegroundColorAttributeName:
                                                                                                   } forState:UIControlStateNormal];


    [ setSearchFieldBackgroundImage: forState:UIControlStateNormal];

    UIImage* image = ;
    [, nil] setBounds:CGRectMake(0, 0, image.size.width, image.size.height)];

    [ setImage: forSearchBarIcon:UISearchBarIconClear state:UIControlStateNormal];
    [ setImage: forSearchBarIcon:UISearchBarIconClear state:UIControlStateHighlighted];
    [ setImage: forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
    [ setImage: forSearchBarIcon:UISearchBarIconSearch state:UIControlStateHighlighted];
</code></pre>

<p>这是第二个问题的答案:</p>

<pre><code>    [, nil] setBackgroundColor:];
</code></pre>

<p>不要遍历 subview ,这是一种无知的方法,当 Apple 自由地让您使用他们的 API 来使用 UIKit 更改 UITextField 的背景颜色时。您会在堆栈上看到大多数类似事情的答案都声称使用通过 subview 的迭代,但这些都是失败的答案,也是 StackOverflow 充满无用垃圾的另一个原因。</p>

<p>另外,这里来自 Apple Docs,实际上来自 UIAppearance.h 的头文件</p>

<p>/* 要自定义包含在容器类实例中的类实例或层次结构中的实例的外观,请使用 +appearanceWhenContainedIn: 作为适当的外观代理。例如:</p>

<pre><code> [, nil] setBarTintColor:myColor];
[, , nil] setBarTintColor:myTabbedNavBarColor];
</code></pre>

<p>*/</p>

<p>希望这会有所帮助,事实上,它会有所帮助,如果您按照上面的说明操作,您将不必再担心自定义,一切都会变得 super 简单。祝你好运!</p>

<p>要点行动:</p>

<p> <a href="https://gist.github.com/anonymous/b38bfd23130981d02bca" rel="noreferrer noopener nofollow">https://gist.github.com/anonymous/b38bfd23130981d02bca</a> </p>

<p> <a href="https://gist.github.com/anonymous/2358875a896895df3e5b" rel="noreferrer noopener nofollow">https://gist.github.com/anonymous/2358875a896895df3e5b</a> </p>

<p>要使用这样的子类,你必须创建一个没有 StoryBaord 的 UIViewController,然后这样做:</p>

<p>CCCUSTHomeViewController.m</p>

<pre><code>#import &#34;EXAMPSubViewWithSearchBar.h&#34;
#import &#34;CCCUSTHomeViewController.h&#34;

@interface CCCUSTHomeViewController ()
@end

@implementation CCCUSTHomeViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = ;
    if (self)
    {

    }
    return self;
}

-(void)loadView
{
    ];
}

-(EXAMPSubViewWithSearchBar*)contentView
{
    return (id);
}
@end
</code></pre>

<p>然后是 UIViewController 的标题:</p>

<pre><code>#import &lt;UIKit/UIKit.h&gt;

@interface CCCUSTHomeViewController : UIViewController
@end
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UISearchBar 自定义类和外观,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31879496/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31879496/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UISearchBar 自定义类和外观