2010-01-02 95 views
1

我只是想规划一个新的应用程序...我想有一系列的图像,用户可以在屏幕上拖动并放下他们想要的位置。多个uiimageview触摸

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

我可以编码,因此可以拖动一个图像,但我不知道如何将相同的代码应用于n个图像。例如,在我的视图控制器中,我设置了IBOutlet UIImage *image,在IB中我可以链接和控制....但是如何将此更改为适用于任意数量的图像?

我已经尝试过这一整个早上搜索,但没有多少运气。

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

感谢您的任何信息!

回答

0

首先,您需要从显示它们的视图中逻辑上分离数据,在这种情况下为图像。要显示和放置图像,请将它们放在UIImageViews中。图像应该以某种数据结构存储,例如数组,字典,数据库等。然后,您应该根据需要将它们加载到一个或多个UIImageView中。

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

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

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

1

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

UIImage detecting touch and dragging

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

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