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;
    }
}

我只是不确定它是否包含一些苹果会拒绝的私有 API,还是有更好的方法来做到这一点?

  • 我仍然支持 ios 4,所以没有 ios 5 只有 API
4

1 回答 1

1

Apple 不鼓励使用私人无证 api 的人。

但是您仍然可以在应用程序中使用子类化功能。我使用了这种子类化 UISearchBarBackground。Apple 接受了我的实时申请。因此,在您的应用程序中使用上述代码没有问题。

于 2012-06-18T20:29:59.813 回答