wol*_*ine 21 iphone uitoolbar uibarbuttonitem
无论我尝试初始化UIBarButtonItem的任何图像,它只是显示图像大小的白色背景.即使我在界面构建器中累了,结果也是一样的.所有这些图像与其他对象一起使用时效果很好.
我怎么解决这个?
Mik*_*ler 20
仅使用图像中的Alpha值创建条形按钮图像.无论您提供什么图像,都会根据Alpha值将其转换为白色阴影的图像.
因此,鉴于您的图像是完全白色的,很明显您没有任何透明度.
该指南有这样一段话:
- 使用PNG格式.
- 使用纯白色和适当的alpha.
- 不要包含阴影.
- 使用抗锯齿.
- 如果您决定添加斜角,请确保它是90°(为了帮助您这样做,想象一下位于图标顶部的光源).
- 对于工具栏和导航栏图标,请创建一个大约20 x 20像素的图标.
- 对于标签栏图标,请创建一个大约30 x 30像素的图标.
注意:您为工具栏,导航栏和标签栏提供的图标将用作掩码,以创建您在应用程序中看到的图标.没有必要创建一个全彩图标.
但是,您可以使用自定义视图来获取全彩色图像,如下所示:
虽然这有点超过顶部,但最好遵守指南并使用具有适当格式化图像的普通按钮.
Shi*_*sad 14
在ios 7以后,这将有所帮助
UIImage *image = [[UIImage imageNamed:@"myImage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(YOUR_METHOD:)];
Run Code Online (Sandbox Code Playgroud)
小智 7
在Swift 3中,我发现以下工作 - 这里显示为多个barButtonItem的数组
let barButtonItem1 = UIBarButtonItem( image: UIImage(named: "myImage")?.withRenderingMode(.alwaysOriginal) , style: .plain ,target: self, action: #selector(yourAction))
let barButtonItem2 = UIBarButtonItem(image: UIImage(named: "myImage")?.withRenderingMode(.alwaysOriginal) , style: .plain, target: self, action: #selector(yourAction))
navigationItem.rightBarButtonItems = [barButtonItem1, barButtonItem2]
Run Code Online (Sandbox Code Playgroud)
这显示右侧和侧面的x2 barButtons.要显示左边只需更改为
navigationItem.leftBarButtonItem = [barButtonItem1,barButtonItem2]