在Swift中使用renderingMode创建UIImage

63

在Objective-C中,我会这样做

UIImage *image = [[UIImage imageNamed:@"myImage.png"]   imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

但在Swift中,我尝试了所有这样的替代方案,但都没有成功。

var image : UIImage = UIImage(named:"myImage.png").imageWithRenderingMode(renderingMode: AlwaysOriginal)

它显示了一个错误: 使用未解决的标识符 'AlwaysOriginal'

我该怎么做?

1个回答

180

这是正确的语法:


(适用于 Swift 3.xSwift 4)

var image: UIImage? = UIImage(named:"myImage")?.withRenderingMode(.alwaysOriginal)

(针对Swift 2.x)
var image: UIImage? = UIImage(named:"myImage.png").imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

但您也可以使用这个“快捷方式”:

var image: UIImage? = UIImage(named:"myImage.png").imageWithRenderingMode(.AlwaysOriginal)

2
啊,太棒了。你传递了一个带有枚举值的对象。我以为只需要传递枚举值。谢谢! - Duck
唉,我希望Xcode的代码补全能够更加智能一些,例如如果你输入“.imageWithRenderingMode”,它真的应该预测出“.withRenderingMode”……这将节省无数的谷歌搜索。 - tomblah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接