UIImage 显示为不透明的正方形(IOS Swift)

Posted

技术标签:

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

所以我有这个图像视图:

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

【问题讨论】:

图片在链接中似乎没有任何不透明度。我看到一个带有粉红色圆角矩形轮廓的白色矩形。 是的,我正在尝试将粉色轮廓设置为 UIImage 您确定您使用的图像具有透明度吗?您分享的图片似乎没有任何透明度。 根据其余代码的上下文,您可以使用带有边框和圆角的 UIView 创建类似的视图 - 不需要图像。您能否分享更多代码以查看是否可以选择? 【参考方案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-builder 和***.com/questions/35607634/…) 哦,是的,我从不使用它。我仍然完全不同意使用图像,但这是一个方便的技巧。这肯定是一个潜在的解决方案!

以上是关于UIImage 显示为不透明的正方形(IOS Swift)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 uiimage iOS 中围绕眼睛和嘴巴绘制正方形或圆形

UIImage裁剪透明像素

IOS将UIView转化为UIImage

如何在 iOS 10 中使导航栏透明

ios:更改 UIImage 的颜色

如何以显示结尾为不透明度 0 制作过渡效果:无?