多个uiimageview触摸
Posted
技术标签:
【中文标题】多个uiimageview触摸【英文标题】:multiple uiimageview touch 【发布时间】:2010-01-02 11:25:30 【问题描述】:我只是想计划一个新的应用程序...我想要一系列图像,用户可以在屏幕上拖动它们并放在他们想要的地方。
我想我将拥有一个包含所有图像的数组 (NSMutableArray)。当应用程序加载时,它会将这些绘制到可滚动的 UIView... 然后应用程序将知道哪个用户已按下并拖入主视图。
我可以对其进行编码,以便可以拖动一张图像,但我不确定如何将相同的代码应用于 n 个图像。例如,在我的视图控制器中,我设置了IBOutlet UIImage *image
,在 IB 中我可以链接和控制....但是如何更改它以应用于任意数量的图像?
我整个上午都在尝试搜索这个,但运气不佳。
我想我需要为每个图像应用一个类,因为我将它从数组中绘制出来。 我只是在这里得到一点建议 - 也许指向正确的方向?
感谢您提供任何信息!
【问题讨论】:
【参考方案1】:Matt Facer 刚刚发布了一个问题,其中包含或多或少的代码。
UIImage detecting touch and dragging
简短的回答是您不在 IB 中创建 UIImages。您将以编程方式创建并根据需要将它们添加到主视图中。 UITouch 事件可用于确定被触摸的视图。
这里可能不需要数组; NSMutableSet
更有意义,除非有特殊原因需要保持秩序。
【讨论】:
【参考方案2】:首先,您需要在逻辑上将数据(在本例中为图像)与显示它们的视图分开。要显示和定位图像,请将它们放置在 UIImageViews 中。图像应该存储在某种数据结构中,例如数组、字典、数据库等。然后您应该根据需要将它们加载到一个或多个 UIImageViews 中。
如果您有大量可变数量的界面元素,最好以编程方式创建可变元素。在您的情况下,您将在 Interface Builder 中连接固定元素,如滚动视图。然后,当您需要添加图像时,您可以使用框架初始化 UIImageView,并将其定位在滚动视图中您想要的位置。然后,您将 UIImageView 图像属性设置为您想要的图像。然后,您将 imageView 作为子视图添加到滚动视图。
如果您需要跟踪 imageView,您应该为封闭视图创建一个属性并依次分配每个添加的 imageView。这样您就可以将特定方法集中在当前选定的 imageView 上。
您确实需要注意,在 UIScrollView 中跟踪触摸可能会带来挑战,因为 scrollView 必须捕获所有触摸以查看它是否需要滚动。
【讨论】:
以上是关于多个uiimageview触摸的主要内容,如果未能解决你的问题,请参考以下文章
在同一个 UIImageView 中加载多个图像会在显示新图像之前闪烁最后一个图像