1

我只是想计划一个新的应用程序......我想要一系列图像,用户可以在屏幕上拖动它们并放在他们想要的地方。

我在想我会有一个包含所有图像的数组(NSMutableArray)。当应用程序加载时,它会将它们绘制到可滚动的 UIView... 然后应用程序将知道哪个用户已按下并拖入主视图。

我可以对其进行编码,以便可以拖动一张图像,但我不确定如何将相同的代码应用于 n 个图像。例如,在我的视图控制器中,我IBOutlet UIImage *image在 IB 中设置了可以链接和控制的内容....但是如何将其更改为适用于任意数量的图像?

我整个早上都在尝试寻找这个,但运气不佳。

我想我需要为每个图像应用一个类,因为我将它从数组中绘制出来。我只是在这里得到一点建议 - 也许指向正确的方向?

感谢您提供任何信息!

4

2 回答 2

1

Matt Facer 刚刚发布了一个问题,其中或多或少包含了您正在谈论的代码。

UIImage 检测触摸和拖动

简短的回答是您不在 IB 中创建 UIImages。您将以编程方式创建并根据需要将它们添加到主视图中。UITouch 事件可用于确定被触摸的视图。

这里可能不需要数组;anNSMutableSet更有意义,除非有一些特殊的理由来保持秩序。

于 2010-01-02T16:58:23.443 回答
0

首先,您需要在逻辑上将数据(在本例中为图像)与显示它们的视图分开。要显示和定位图像,请将它们放置在 UIImageViews 中。图像应该存储在某种数据结构中,例如数组、字典、数据库等。然后您应该根据需要将它们加载到一个或多个 UIImageViews 中。

如果您有大量可变数量的界面元素,最好以编程方式创建可变元素。在您的情况下,您将在 Interface Builder 中连接固定元素,如滚动视图。然后,当您需要添加图像时,您可以使用框架初始化 UIImageView,并将其定位在滚动视图中您想要的位置。然后,您将 UIImageView 图像属性设置为您想要的图像。然后,您将 imageView 作为子视图添加到滚动视图。

如果您需要跟踪 imageView,您应该为封闭视图创建一个属性并依次分配每个添加的 imageView。这样您就可以将特定方法集中在当前选定的 imageView 上。

您确实需要注意,在 UIScrollView 中跟踪触摸可能会带来挑战,因为 scrollView 必须捕获所有触摸以查看它是否需要滚动。

于 2010-01-02T18:01:20.787 回答