删除工具栏的背景后,使用图像蒙版,工具栏上方仍保留阴影线。我们如何摆脱它?如您所见,通过下图,我想使用工具栏和按钮,但没有背景或顶部阴影。
const float colorMask[6] = {222, 255, 222, 255, 222, 255};
UIImage *_img = [[UIImage alloc] init];
UIImage *_maskedImage = [UIImage imageWithCGImage:CGImageCreateWithMaskingColors(_img.CGImage, colorMask)];
[self.navigationController.toolbar setBackgroundImage:_maskedImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
答案 0 :(得分:15)
其他答案都没有在iOS7上运行,有些似乎也不适用于较旧的iOS版本。这个(释义http://samplecodebank.blogspot.com/2013/06/UIToolbar-setShadowImage-forToolbarPosition-example.html)对我来说始终在5.1+上工作,并且比生成自定义背景图像和颜色蒙版更简洁,更高效。
toolbar.backgroundColor = [UIColor clearColor];
if ([toolbar respondsToSelector:@selector(setBackgroundImage:forToolbarPosition:barMetrics:)]) {
[toolbar setBackgroundImage:[UIImage new] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
}
if ([toolbar respondsToSelector:@selector(setShadowImage:forToolbarPosition:)]) {
[toolbar setShadowImage:[UIImage new] forToolbarPosition:UIToolbarPositionAny];
}
答案 1 :(得分:7)
在iOS 7上,设置[toolBar setClipsToBounds:YES]
。
答案 2 :(得分:5)
还添加此行
[toolbar setShadowImage:_maskedImage forToolbarPosition:UIToolbarPositionAny];
两个重要的注释:
答案 3 :(得分:2)
首先在项目中添加QuartzCore/QuartzCore
框架,然后将其导入.m
文件中,如下所示...
#import <QuartzCore/QuartzCore.h>
之后只需添加此波纹管代码......
yourToolBar.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
yourToolBar.layer.shadowOpacity =0.0f;
yourToolBar.layer.shadowRadius = 0.0f;
希望这对你有帮助......
答案 4 :(得分:0)
iOS 7中没有其他答案对我有用,所以这就是我使用Interface Builder所做的:
这样做会剪掉工具栏的顶部,从而消除灰色阴影。
答案 5 :(得分:-1)
了setBackgroundImage:_maskedImage 需要删除阴影或在工具栏隐藏后调用自定义阴影清除方法