【问题标题】:tintColor of UIImageView doesn't work with storyboard,but work with codeUIImageView 的 tintColor 不适用于情节提要,但可以使用代码
【发布时间】:2018-02-15 15:11:36
【问题描述】:

Xcode 9 beta 6,iOS 11

我下载了一个 Instagram 标志,它是一个 .png 文件,并在Main.storyboard 中创建了一个UIButtonUIImageView。标志图像是设置如下:

我设置了UIButtonTintColorUIImageViewwhite,但是当我运行项目时,UIImageView的图像颜色仍然是黑色,而UIButton的图像颜色是白色。

imageView 设置:

为什么imageView 是黑色的,button 是白色的 图像的设置?谢谢。

补充说明:

当我使用代码添加子视图imageView 时,它运行良好。真的很奇怪!

【问题讨论】:

  • 你能分享你为UIButtonUIImageView设置图像的代码吗?
  • @Malik 我没有使用代码,而是使用故事板。我确信故事板中的所有设置都是正确的。刚才,我发现了一个奇怪的行为,当我使用代码添加 imageView 时,它可以工作(变为白色)。我将在问题中进行补充说明。
  • 在这种情况下,我很确定您可能将值设置在故事板的错误位置。可以为UIButtonUIImageView 添加属性检查器的屏幕截图吗?
  • @Malik 我已经在问题中发布了 imageView 设置的屏幕截图。你可以看看它。谢谢。
  • 在此处查看“简单修复解决方案”:stackoverflow.com/questions/41121425/… :)

标签: ios uiimageview uibutton uicolor


【解决方案1】:

显然故事板存在问题,如果在将 xcassets 中的图像作为模板添加之前添加图像视图,则色调颜色不会生效(如果在故事板中设置)。我能够重现该问题。我尝试了以下方法并成功了。

  • 删除UIImageView
  • 创建一个新的UIImageView
  • 设置图像和TintColor

【讨论】:

  • 谢谢,但我删除了UIImageView 并创建了一个新的,天哪,我的问题仍然存在。我在 Xcode9 beta6 中发现了一些奇怪的行为。
  • 哦。我的错。我没有注意到您使用的是 Xcode 9。不能肯定地说,因为我没有使用它的任何 beta 版本
  • 无论如何,谢谢。我希望这个奇怪的问题不会在发布的版本中发生。
  • Apple 告诉我这是一个已知的错误。
  • 我并不感到惊讶
【解决方案2】:

Xcode 9.4.1 中仍然存在问题

在用户定义的运行时属性中为tintColor 设置所需的颜色可以帮助我解决这个问题:

【讨论】:

  • 好吧,我认为 Apple 不会再解决这个问题。我不知道为什么。很多人都发现了这个问题。苹果已经知道这是一个问题。
  • XCode 10.2 仍然存在同样的错误真是令人失望 =(
  • 在 iOS 11.x 上仍然会发生,但在 iOS 13.x 上可以正常工作。使用 Xcode 11.3.1 测试。我必须以编程方式设置 alwaysTemplate 和 tintColor
【解决方案3】:

您可以通过从情节提要更改图像全局色调颜色来做到这一点:

【讨论】:

  • 我已经卸载 XCode 大约 1.5 年了,我不确定您的解决方案是否有效。
【解决方案4】:

我在 AppDelegate 中设置了全局 tintColor。

我在 iOS 13 Xcode 11 上的深色模式下没有获得正确的色调。但是,当为条形按钮设置时,相同的图像色调看起来是正确的。

我通过在 images.xcassets 中将图像的 Render As 属性设置为 Template Image 解决了这个问题。我既不需要删除情节提要中的 UIImageView 也不需要再次添加或添加用户定义的属性。

【讨论】:

  • 这对我帮助很大。谢谢亲爱的
猜你喜欢
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
相关资源
最近更新 更多