提问人:Fareed Afzal 提问时间:1/15/2019 最后编辑:Angel F SyrusFareed Afzal 更新时间:1/15/2019 访问量:34
当我拖动UIImageView时,在拖动过程中想要与在同一视图上显示的其他imageView进行比较[关闭]
When I drag the UIImageView then during dragging want to compare with other imageView which show on same view [closed]
问:
在我的场景中,总共有 9 张图像。在这 9 张图像中,2 或 3 可能是相同的,因此当我将一个 ImageView 拖放到另一个 imageView 中时,因此在拖放后,我想将拖动图像与放置拖动图像的图像进行比较。UIView
希望你能轻松理解我的问题。 先谢谢你!
答:
虽然你不能将一个 imageView 拖放到另一个 imageView 上,但你可以将一个 ImageView 放在另一个 ImageView 上,例如,你可以将 ImgView1 放在 ImageView2 上或上面,你可以通过给它们提供不同的背景图像来比较它们,或者你可以单击视图控制器场景,它将指示你正在单击哪个 UIelement
你可以做:---'func image(_ image1: UIImage?, isEqualTo image2: UIImage?) -> Bool { let data1: 数据?= UIImagePNGRepresentation(图像1) let data2: 数据?= UIImagePNGRepresentation(图像2)
return data1 == data2
} `
评论
要比较两个对象,有两种方法。UIImage
- 将两个对象转换为 并使用 进行比较。
NSData
isEqual
- 将两个对象转换为 并使用 进行比较。
Data
elementsEqual
后者显然更准确。在此处查看更多信息/讨论:如何比较两个 UIImage 对象
extension UIImage {
func isEqual(to image: UIImage) -> Bool {
guard let data1: Data = UIImagePNGRepresentation(self),
let data2: Data = UIImagePNGRepresentation(image) else {
return false
}
return data1.elementsEqual(data2)
}
}
我希望这会有所帮助。
编辑:
要 https://www.youtube.com/watch?v=6zdgFwAE2y4 做这样的事情(来自 OP 的评论),有几种方法可以做到这一点。我能想到的一个是,你可以创建一个具有类似 and 或 say 等属性的类。UIImage
identifier
shape
这样,您就可以通过自定义属性轻松地比较两个不同的图像/对象。:)祝你好运。shape
评论