当前位置: 首页 > 面试题库 >

将自定义图像设置为UIBarButtonItem,但不显示任何图像

顾昊穹
2023-03-14
问题内容

我想将自定义图像设置为UIBarButtonItem,但它仅在周围显示一个矩形框,并且不显示实际图像。

func setupBrowserToolbar() {
    let browser = UIToolbar(frame: CGRect(x: 0, y: 20, width: self.view.frame.width, height: 30))
    //配置返回组件
    let path = NSBundle.mainBundle().pathForResource("back", ofType: "png")
    let urlstr = NSURL(fileURLWithPath: path!)
    let data = NSData(contentsOfURL: urlstr)
    let btnback = UIBarButtonItem(image: UIImage(data: data!), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("backClicked:"))
    //分割按钮1
    let btngrap1 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
    //前进按钮
    let btnforward = UIBarButtonItem(image: UIImage(named: "forward.png"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("forwardClicked:"))
    //分割按钮2
    let btngrap2 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
    //重新加载
    let btnreload = UIBarButtonItem(image: UIImage(named: "reload.png"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("reloadClicked:"))
    //分割按钮3
    let btngrap3 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
    //停止加载
    let btnstop = UIBarButtonItem(image: UIImage(named:"stop.png"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("stopClicked:"))
    progress = UIProgressView((frame: CGRect(x: 0, y: 48, width: self.view.frame.width-50, height: 2)))
    progress.progress = 0
    browser.setItems([btnback, btngrap1, btnforward, btngrap2, btnreload, btngrap3, btnstop], animated: true)
    ptimer = NSTimer(timeInterval: 0.2, target: self, selector: Selector("loadProgress"), userInfo: nil, repeats: true)
    self.view.addSubview(browser)
}

我的应用程序屏幕截图

上面的方法是工具栏配置,但是我不知道这是什么错误。


问题答案:

那是因为UIBarButtonItem图像的默认呈现模式始终将图像绘制为模板图像,而忽略其颜色信息(UIImageRenderingModeAlwaysTemplate)。只需使用UIImage的方法imageWithRenderingMode始终创建原始图像即可。

UIImage(named: "yourImageName")!.withRenderingMode(.alwaysOriginal)


 类似资料:
  • 我有一个rest应用程序,它使用带有tomcat嵌入的spring boot 1.4.2 在客户端,用户可以通过网络摄像头拍照并保存到服务器。 在服务器端,我保存img的例子: /home/test/img/ 在我的Web应用程序中,我需要设置什么才能显示图像?

  • 我对mapbox/传单还不熟悉,我认为这是一个相当基本的问题,我在过去两天里一直在努力解决,尽管我已经尝试了几种方法,但我还是无法完全理解。 我正在通过geojson加载标记: 然后尝试根据Geojson数据中使用的标题更改大小或颜色等属性: geojson如下所示: 我错过了什么吗,因为我也试图通过使用 setIcon函数中的某个地方,但似乎没有工作。如果有人能给我指出正确的方向。这真的很合适。

  • 我尝试了一切,但图像不会显示,我试图缩小图像,但没有用,我试图改变路径,我试图更改图像的位置,但没有帮助,我试图在互联网上搜索,但什么都没有。 我看到的只是空白的图形用户界面,没有文本和图像。如果你能帮我,你会帮我一个大忙。 代码如下:

  • 我使用自定义文章类型ui和先进的自定义字段插件箱自定义文章类型和字段。 我创建了自定义帖子类型和字段。然后我使用了

  • 问题内容: 我正在尝试加载图标,但它不会显示。该jpanel位于boxlayout中。我不知道这是否使事情搞砸了。这很奇怪,因为除了图标图像,我还能添加几乎所有其他内容。我通过调试器,searchIcon显示宽度和高度为-1。这是否意味着未加载图像? 问题答案: 您的图像文件必须与运行应用程序所在的目录位于同一目录中。 如果它实际上与进行调用的类在同一目录中,则可以使用: 如果它在任意位置,则需要

  • 在FOP 2.6中,我尝试将FO文件转换成PDF。我在Windows上使用标准配置文件。 由于不支持一种图像格式,我创建了一个自定义的PreLoader、ImageLoaderFactory和ImageConverter。它们是通过服务条目注册的,从日志中我可以看到它们正在被使用: 但图像不会显示在生成的PDF文件中。。。 转换器将自定义格式转换为PNG并返回RAW_PNG: 我也曾试图皈依JPG