我最近继承了一个iPad项目,它基本上是一个图像/演示文稿查看器。在选择用户希望观看的演示之后,应用程序基本上一个接一个地显示图像,当用户向上或向下滑动时,或者当他们点击屏幕的角落中的一个箭头时改变。但是,演示文稿中的某些图像具有分页点,在它们的两侧都有箭头。图像按顺序排列,当您从一个扫描到下一个图像时,点会移动。我们的客户希望能够使用作为静态图像一部分的点和箭头进行导航。当他们点到一个点时,它会将它们带到适当的页面。
这个应用程序的早期原始版本有一个巨大的plist文件,其中包含应用程序中所有图像的信息,包括是否有任何这些轮播视图,以及它们将去哪里。这已经很久了,应用程序中的图像/演示文稿比当时多得多。
有没有更好的方法来确定在哪里听取触摸?或者我应该让自己辞职写一个文本文件,并知道我必须在内容发生变化时编辑它?我被告知内容不应该经常改变。
答案 0 :(得分:0)
您需要创建图像到点位置的映射,并在图像符合查看条件时动态执行,并在图像超出范围时将其删除。如果您正在使用UIImageViews,您可以使用标记字段,如果不是 - 如果使用原始CGImageRefs或UIImages也可以。
您创建了一个mutableDictionary,并使用该键映射到该图像。如果UIImageView可以是表示标记的NSNumber,如果是图像,则可以使用设置为图像地址的NSValue对象。当图像进入范围时,您将向词典中添加一个条目,该词条具有图像键,并且单个NSNumber用于标识点位置,或者是命中矩形的字符串表示(回想一下,您可以将CGRects转换为字符串,反之亦然使用NSStringFromCGRect()等)。
当您点击图像时,您会获得相关图像的密钥,从可变字典中请求定位器,并允许或禁止它。您将需要知道图像的帧在任何容器中,因为无论是什么,点击识别可能不是图像本身,因此您可以获得局部图像偏移。