ios - 当我拖动 UIImageView 时,在拖动过程中想要与同一 View 上显示的其他 imageView 进行比较

标签 ios iphone drag-and-drop uiimageview

<分区>


想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post .

关闭 4 年前

在我的场景中,UIView 中共有 9 张图像。在这 9 张图像中,2 或 3 可能是相同的,所以当我将一个 ImageView 拖放到另一个 imageView 中时,所以在拖放之后我想将拖动图像与我放置拖动图像的图像进行比较。

希望您能轻松理解我的问题。 先感谢您!

最佳答案

要比较两个 UIImage 对象,您可以有两种方法。

  1. 将两个对象都转换为 NSData 并使用 isEqual 进行比较。
  2. 将两个对象都转换为 Data 并使用 elementsEqual 进行比较。

后者显然更准确。在此处查看更多信息/讨论:How to compare two UIImage objects

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的评论),有几种方法可以做到这一点。我能想到的一个方法是,您可以创建一个具有 UIImageidentifier 等属性的类,或者说 shape

这样,您就可以通过自定义属性shape轻松比较两个不同的图像/对象。 :) 祝你好运。

关于ios - 当我拖动 UIImageView 时,在拖动过程中想要与同一 View 上显示的其他 imageView 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54195763/

上一篇:ios - 如何在等待核心数据/网络请求时在状态恢复期间显示加载微调器?

下一篇:ios - ViewController/View 的大小未根据导航栏和选项卡栏更新

相关文章:

javascript - DropzoneJS : Prevent uploading and displaying unsupported files

ios - 无法在 iOS 中仅解析来自 JSON 的 imageURL

iphone - 为什么使用 NSFetchedResultsController?

Android如何使用 ListView 项目执行拖放

ios - 如何在 iOS 中获取两个地址之间的路线

iphone - 特定角的角半径

c# - PictureBox 未落在正确的坐标上

android - 在存储库容器上找不到参数 [] 的方法 google()。 ( flutter )

objective-c - 覆盖核心数据字段

ios - 用于更改标签背景颜色的表格单元格按钮操作