改UIsearchbar 的背景和cancel按钮
1 修改背景
searchbar =[[UISearchBar alloc]initWithFrame:CGRectMake(0,KTopBarHeight, 320, KTopBarHeight)];
searchbar.delegate=self;
searchbar.keyboardType = UIKeyboardTypeDefault;
//[[searchbar.subviews objectAtIndex:0]removeFromSuperview];
UIImage *img = [[UIImage imageNamed: @"searchBar_bg.png"]stretchableImageWithLeftCapWidth:0 topCapHeight:22];
UIImageView *v = [[[UIImageView alloc] initWithFrame:CGRectZero] autorelease];
[v setImage:img];
v.bounds = CGRectMake(0, 0, searchbar.frame.size.width, searchbar.frame.size.height);
NSArray *subs = searchbar.subviews;
for (int i = 0; i < [subs count]; i++) {
id subv = [searchbar.subviews objectAtIndex:i];
if ([subv isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
{
CGRect viewRect = [subv frame];
[v setFrame:viewRect];
[searchbar insertSubview:v atIndex:i];
}
}
searchbar.placeholder=@"请输入疾病名,症状或问题";
2 修改cancel按钮
-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
searchBar.showsCancelButton=YES;
btn.hidden=NO;
searchBar.showsCancelButton = YES;
for(id cc in [searchBar subviews])
{
if([cc isKindOfClass:[UIButton class]])
{
UIButton *sbtn = (UIButton *)cc;
[sbtn setTitle:@"取消" forState:UIControlStateNormal];
[sbtn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
}
}
}