【发布时间】:2014-06-06 17:55:15
【问题描述】:
我无法在我的 IOS 7 中自定义搜索栏。
我在 IOS6 中使用以下代码更改搜索栏背景
for (UIView * v in sarchBar.subviews)
{
if ([v isKindOfClass:NSClassFromString(@"UISearchBarTextField")])
{
v.superview.alpha = 0;
UIView *containerView = [[UIView alloc] initWithFrame:sarchBar.frame];
[containerView addSubview:v];
[self.view addSubview:containerView];
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor whiteColor]];
[[UISearchBar appearance] setSearchFieldBackgroundImage:[UIImage imageNamed:@"search"] forState:UIControlStateNormal];
}
}
其次,如果我自定义搜索控制器以删除搜索栏中的默认取消按钮,它在 IOS6 中工作正常,但使用自定义搜索控制器在 IOS7 中无法搜索。
【问题讨论】:
-
您使用的是apple的私有类,请注意:您的应用可能会被iStore拒绝
-
哪一个是私课?
-
是的,我可以更改背景,但要完全自定义,您需要子类化 UISearchController 并且子类化后搜索不起作用
-
UISearchBarTextField 是私有的,根本没有文档,你可以只检查子视图来获取名称类,但这并不意味着你可以直接使用它。我告诉你这个,因为我曾经尝试过类似的东西,苹果拒绝了我的应用,这违反了苹果的规则……但你当然可以尝试……
标签: ios ios7 ios6 uisearchbar uisearchdisplaycontroller