【问题标题】:Image in UI Navigation BarUI 导航栏中的图像
【发布时间】:2017-07-27 01:49:45
【问题描述】:

我正在尝试将图像放到 UI 导航栏上,但遇到了一些色调问题。图片为 40*40 的透明 (png)。

图像在 xcode 中是这样的:

当我作为 UI 栏按钮项的图像放置时,它会显示为:

注意颜色的变化。应用程序的默认颜色是棕色,因此默认色调是透光的。

如何让图像的原始颜色显示出来?

谢谢

编辑:

长宽比问题:

【问题讨论】:

    标签: ios uiimage uibarbuttonitem


    【解决方案1】:

    取自苹果文档:

    UIImageView 包含 tintColor 属性。当图像视图包含模板图像(即指定 UIImageRenderingModeAlwaysTemplate 渲染模式的图像)时,会将 tintColor 应用于图像。

    所以你需要将你的图片的渲染模式设置为:UIImageRenderingModeAlwaysOriginal

    UIImage *originalImage = [UIImage imageNamed:@"navBarImage.png"];
    originalImage = [originalImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    //Then apply the image to the navigation bar
    

    如果您正在为似乎是这种情况的 iOS 应用程序进行开发,那么我建议您将图像保留为它显示 atm 的方式,因为它看起来比使用原始图像更好。这只是我的看法,我觉得它更清晰干净。

    【讨论】:

    • 谢谢!这解决了 tintColor 问题。但是现在图像的纵横比丢失了。我会用图片更新问题。根据 [link]stackoverflow.com/questions/1590170/…,我正在使用方形 40 像素图像
    • 哥们,你有没有试过至少研究一下纵横比位?以及如何设置 imageView 的框架?因为它很容易修复
    • 但我没有使用 imageView。我采取了捷径,但只是使用了一个条形按钮项目,然后将图像放在上面:) 不过谢谢-我使用以下方法解决了问题:appgroup.co.uk/adding-a-uibarbuttonitem-with-a-custom-image 也使我的图像变平了-感谢您的推荐
    【解决方案2】:

    斯威夫特:

    let customImageBarButton = UIBarButtonItem(UIImage(named: "someImage.png").withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(handleClick)) 
    

    22pt x 22pt 图标大小效果更好。

    66px x 66px 图片@3x 适用于 iPhone Plus 手机等

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-26
      • 2019-05-26
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多