1

私は人々が以前にこれを尋ねたことを知っています、そして私はこの解決策を見つけました:

for (UIView *subview in searchBar.subviews) {
    if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
        UIView *bg = [[UIView alloc] initWithFrame:subview.frame];
        bg.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"top-bar.png"]];
        [searchBar insertSubview:bg aboveSubview:subview];
        [subview removeFromSuperview];
        break;
    }
}

Appleが拒否するプライベートAPIが含まれているかどうかはわかりませんが、これを行うためのより良い方法はありますか?

  • 私はまだiOS4をサポートしているので、iOS5のみのAPIはありません
4

1 に答える 1

1

Appleは、文書化されていないプライベートAPIを使用している人を奨励していません。

ただし、アプリケーションでサブクラス化機能を使用することはできます。私はこの種のサブクラス化UISearchBarBackgroundを使用しました。Appleは、稼働中の私のアプリケーションを受け入れました。したがって、アプリケーションで上記のコードを使用しても問題はありません。

于 2012-06-18T20:29:59.813 に答える