3

我需要自定义 UISearchBar:

  • 更改搜索文本颜色
  • 更改网站图标

Apple 没有提供 API。但是,这是一种可能的解决方案:

for(UIView *subView in _searchBar.subviews){
    if([subView isKindOfClass:UITextField.class]){
        UITextField *searchField = (UITextField*)subView;
        searchField.textColor = [UIColor darkGrayColor];
        UIImage *image = [UIImage imageNamed: @"loop.png"];
        UIImageView *iView = [[UIImageView alloc] initWithImage:image];
        searchField.leftView = iView;
    }
}

它完美地工作。但我担心苹果可能会拒绝该应用程序。我知道这不是私有 API,但也不是完全公开的。

有没有人在 App Store 中有这样的代码的应用程序?

4

2 回答 2

4

您没有调用任何私有 API,因此我几乎可以肯定此代码将通过 AppStore 验证。请注意,您的代码不是面向未来的,Apple 可能会更改内部UISearchBar实现,您的代码可能会停止工作。最可靠的解决方案是子类UITextField化并推出您自己的代码。

话虽如此,这不太可能成为问题,并且可以肯定的是,您的代码可以正常工作。

于 2012-10-31T10:57:50.310 回答
1

在大多数情况下,它不会被苹果检测到。(太多的应用程序使用类似的方法来修改 UIControl)但是您需要在运行此代码之前检查 iOS 版本,Apple 开发团队可能会在新的 iOS 版本中更改这些内部结构。

if (ios > 5.0 && ios < 6.0 )
     // your modifies here
else 
     // ....
于 2012-10-31T10:57:37.810 回答