Ios7 UISearchBar';iOS 6中的取消按钮问题

Ios7 UISearchBar';iOS 6中的取消按钮问题,ios7,ios6,uisearchbar,Ios7,Ios6,Uisearchbar,我正在使用UISearchBar,但我在iOS 6中遇到了取消按钮的问题,它在iOS 7中运行良好 适用于iOS 6 适用于iOS 7 [[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTintColor:whiteColor]; 在iOS 7中,按钮的边框不显示。只有“取消”用白色书写。 在iOS 6中,带边框的按钮显示为白色,整个背景也为白色。请帮助。如果我理解正确,您希望使按钮的背景透明且无边

我正在使用UISearchBar,但我在iOS 6中遇到了取消按钮的问题,它在iOS 7中运行良好

适用于iOS 6

适用于iOS 7

[[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTintColor:whiteColor];
在iOS 7中,按钮的边框不显示。只有“取消”用白色书写。
在iOS 6中,带边框的按钮显示为白色,整个背景也为白色。请帮助。

如果我理解正确,您希望使按钮的背景透明且无边框。如果是这样,我想我找到了一个解决方案:

对于iOS6:
您必须将
backgroundImage
属性设置为具有透明背景的图像。 例如,您可以使用由
[UIColor clearColor]
创建的
UIImage
对象执行此操作。

对于iOS7:
只需更改任何内容,但
tintColor
:)


怎么做? 首先,我在这里使用了一个方法:,但将它稍微更改为:

-(UIImage*)图像带颜色:(UIColor*)颜色和大小:(CGSize)大小
{
CGRect rect=CGRectMake(0.0f,0.0f,size.width,size.height);
UIGraphicsBeginImageContext(矩形大小);
CGContextRef context=UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(上下文,[color CGColor]);
CGContextFillRect(上下文,rect);
UIImage*image=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsSendImageContext();
返回图像;
}

然后我在viewDidLoad中写道:

if([[[UIDevice currentDevice]systemVersion]doubleValue]<7.0){
[[UIBarButtonim Appearance when contained in:[UISearchBar class],nil]setBackgroundImage:[UIColor clearColor]和大小:CGSizeMake(30.f,40.f)]用于状态:UIControlStateNormal barMetrics:UIBarMetricsDefault];
}否则{
[[UIBarButtonim外观,当包含在:[UISearchBar类]中时,无]设置颜色:[UIColor whiteColor]];
}

我希望它能解决你的问题:)