在swift中使用UIColor(patternImage:UIImage(named:“myimage.jpg”))设置背景时如何获取视图的背景颜色或图像
Posted
技术标签:
【中文标题】在swift中使用UIColor(patternImage:UIImage(named:“myimage.jpg”))设置背景时如何获取视图的背景颜色或图像【英文标题】:How to get background color or image of a view when background is set using UIColor(patternImage: UIImage(named:"myimage.jpg")) in swift 【发布时间】:2017-07-29 14:00:48 【问题描述】:我已使用以下命令设置视图的背景颜色
self.view.backgroundColor = UIColor(patternImage: UIImage(named:"myimage.jpg"))
我想再次获取图像名称“myimage.jpg”。为此,我尝试使用以下命令获取图案图像
self.view.backgroundColor?.cgColor.pattern
它正在返回
Optional(<CGPattern 0x600000364e00>)
我也看过Detecting if UIColor was created with colorWithPatternImage
但没多大用处
【问题讨论】:
您想从背景颜色中检索图像名称吗? @PuneetSharma 是的 @PuneetSharma 请查看我更新的问题 【参考方案1】:我认为不可能获得图像名称。
为了创建颜色,Quartz 2D 使用 CGPattern
对象作为在图形上下文中绘制的颜料。
CGPattern
是一个图像,但它是一个单独的对象。
如果您想检索已创建 UIColor
对象的图像名称,我建议您使用 hashmap(NSDictionary
) 作为 UIColor
对象作为键,并将其模式图像名称作为值。现在唯一的问题是UIColor
不符合NSCopying
协议,因此不能直接用作NSDictionary
中的键,但这可以通过使用另一个对象并符合NSCopying
协议来解决。
【讨论】:
也许你是对的。请让我等待更多答案。以上是关于在swift中使用UIColor(patternImage:UIImage(named:“myimage.jpg”))设置背景时如何获取视图的背景颜色或图像的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 3 或 Hue 将 CAGradientLayer 转换为 UIColor?
如何从 Swift 中的 UIColor 获取 RGB 代码(INT)[重复]
如何在 Swift 中创建十六进制颜色字符串 UIColor 初始化程序? [复制]