我正在为导航栏制作自定义 UI,并且我有一个与这篇文章中提出的问题完全相同的问题
在 StoryBoard 中,我尝试了各种组合以使我的 UIbarbuttonitem 着色为透明或清晰的颜色,但我仍然看到这个丑陋的黑色按钮(请参阅 + 符号)。如何实现透明效果,让按钮看起来与背景融为一体?
我的截图
其他一些应用截图。看看这看起来多漂亮?!
请注意,+ 图像是我自己的自定义 png img,大小为 20 x 20 像素,具有透明/空白背景。
我正在为导航栏制作自定义 UI,并且我有一个与这篇文章中提出的问题完全相同的问题
在 StoryBoard 中,我尝试了各种组合以使我的 UIbarbuttonitem 着色为透明或清晰的颜色,但我仍然看到这个丑陋的黑色按钮(请参阅 + 符号)。如何实现透明效果,让按钮看起来与背景融为一体?
我的截图
其他一些应用截图。看看这看起来多漂亮?!
请注意,+ 图像是我自己的自定义 png img,大小为 20 x 20 像素,具有透明/空白背景。
您可以使用 iOS 5 中引入的新外观 API 来实现这一目标以及更多功能。
基本上,您只需为 UI 设置一次外观,它就会反映在整个程序中。
这是一个示例UIBarButtonItem
:
// You can also use stretchable images
UIImage *image = [[UIImage imageNamed:@"myCoolBarButton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
[[UIBarButtonItem appearance] setBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
如果您不能使用 iOS 5,那么您必须像这样以编程方式构建它们:
// Create a custom button with an image
UIImage *image = [UIImage imageNamed:@"myCoolBarButton.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:image forState:UIControlStateNormal];
button.frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
// Create a custom UIBarButtonItem with the button
UIBarButtonItem aBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aButton];
无论如何,这里有一些关于外观主题的好教程的链接
编辑:为了澄清起见,使用自定义图像比使用颜色、渐变和透明度要容易得多。
你不能用色调来做到这一点。您必须同时设置导航栏的 backgroundImage 和栏按钮项的 backgroundImage,以便它们根据需要进行协调。
绘制条形按钮项目的背景图像时,您可能必须绘制整个按钮,包括圆角矩形轮廓和圆角矩形轮廓的阴影,但这并不难,一旦你完成了它就可以重用永远的代码。
我认为您带有 + 符号的 png 图像不包含 alpha 通道。我有透明的图像,它对我来说非常好。