我正在使用UISearchBar,但我在iOS 6中的取消按钮中遇到问题,这在iOS 7中运行良好
适用于iOS 6
适用于iOS 7
[[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTintColor:whiteColor];
在iOS 7中,Button的边框不显示。只有“取消”用白色写。 在iOS 6中,带有边框的Button显示整个背景也是白色。请帮忙。
答案 0 :(得分:0)
如果我理解正确,您希望按钮的背景透明且没有边框。如果是这样,我想我找到了一个解决方案:
对于iOS6:
您必须将backgroundImage
属性设置为具有透明背景的图像。
例如,您可以使用UIImage
创建的[UIColor clearColor]
对象来执行此操作。
对于iOS7:
只是改变一下,但tintColor
:)
首先,我使用了一个方法:LINK,但稍微改变了一下:
- (UIImage *)imageWithColor:(UIColor *)color andSize:(CGSize)size
{
CGRect rect = CGRectMake(0.0f, 0.0f, size.width, size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
然后在viewDidLoad中写道:
if ([[[UIDevice currentDevice] systemVersion] doubleValue] < 7.0) {
[[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setBackgroundImage:[self imageWithColor:[UIColor clearColor] andSize:CGSizeMake(30.f, 40.f)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
} else {
[[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTintColor:[UIColor whiteColor]];
}
我希望它能解决你的问题:)