【问题标题】:UIImage being displayed as opaque square (IOS Swift)UIImage 显示为不透明的正方形(IOS Swift)
【发布时间】:2017-03-24 13:44:04
【问题描述】:

所以我有这个图像视图:

当我将它添加为按钮的 UIImage 时,生成的按钮只是一个填充的粉红色不透明方块。我不明白为什么会这样。

【问题讨论】:

  • 图片在链接中似乎没有任何不透明度。我看到一个带有粉红色圆角矩形轮廓的白色矩形。
  • 是的,我正在尝试将粉色轮廓设置为 UIImage
  • 您确定您使用的图像具有透明度吗?您分享的图片似乎没有任何透明度。
  • 根据其余代码的上下文,您可以使用带有边框和圆角的 UIView 创建类似的视图 - 不需要图像。您能否分享更多代码以查看是否可以选择?

标签: ios swift uiimageview uibutton uiimage


【解决方案1】:

发生这种情况是因为图像尺寸不正确。在您的代码中,打开最大的设备模拟器并在 viewDidAppear() 中打印 UIButton.frame。一旦您知道帧大小是多少,请将图像设置为相同大小,而不是更小并拉伸以适合。当图像被拉伸时,它会使自己看起来更加不透明。

在其他建议中,我建议不要将图像用于如此简单的事情。使用这个:

    yourButton.layer.borderWidth = 2
    yourButton.layer.cornerRadius = 5
    yourButton.layer.borderColor = UIColor(red: 249/255, green: 0/255, blue: 150/255, alpha: 1/1).cgColor

我使用了你的实际颜色作为边框颜色,所以你很高兴。使用borderWidth 和cornerRadius 直到它们是你想要的。

如果您决定坚持使用图片,则最好使用较大的图片而不是较小的图片,并确保将其分配给按钮的背景图片,因为您想要起到边框的作用,这样会更好地发挥作用。

【讨论】:

  • 如果他喜欢坚持使用图像,他还可以查看资产目录中的图像切片,以针对正确的设备显示尺寸呈现正确的图像
  • 对于 iOS,这很简单。只需 1x、2x 和 3x。 1x 将显示您将在情节提要中看到的实际点尺寸,其他是图像尺寸的直接乘数。结帐this post了解更多关于图像缩放的信息。
  • 如果你有图片,这个缩放很好。但是当您需要保留边框时,您可以使用图像切片或将其直接设置在图像上(参见macoscope.com/blog/stretchable-images-using-interface-builderstackoverflow.com/questions/35607634/…
  • 哦,是的,我从不使用它。我仍然完全不同意使用图像,但这是一个方便的技巧。这肯定是一个潜在的解决方案!
猜你喜欢
  • 1970-01-01
  • 2011-10-15
  • 2011-06-22
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多