1

次のコードを使用して、UISearchBar の背景を非表示にしています。 [[searchView.subviews objectAtIndex:0] setHidden:YES]; 非常に単純ですが、サブビュー リスト内の位置をハードコーディングするのが心配です。だから私は UISearchBarBackground.h ファイルを探しに行きましたが、見つかりません。定義がどこに隠れているか知っていますか?

4

4 に答える 4

5

別の方法:

for (UIView* subview in searchControl.subviews) {
    if ([NSStringFromClass([subview class]) isEqualToString:@"UISearchBarBackground"]) {
        [subview removeFromSuperview];
    }
}
于 2011-09-01T13:16:28.233 に答える
0

[subView isKindOfClass:[UISearchBarBackground class]]で単純に使用するには、次のように問題なく機能します。

@interface UISearchBarBackground:NSObject {} @end

より完全な定義はgithubで入手できます。

于 2010-04-28T17:46:25.727 に答える
0

iOS4の場合は機能しなかったので、これを試してみて、機能します

[[self.mySearchBar.subviews objectAtIndex:0] removeFromSuperview];

于 2010-07-09T10:05:05.600 に答える
0

代わりに NSClassFromString() メソッドを使用して、等価性をテストするためだけに新しいクラスを作成する必要がないようにすることができます

for (UIView *v in [self.searchbar subviews]) {
    if ([v isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
        // whatever you want to do with the subview goes here...
    }
}
于 2013-09-05T21:07:15.310 に答える