0

我正在寻找一些方向来帮助在我的应用程序中实现特定功能。

这有点难以解释,但在这里。虽然我使用多层隐喻(a la Photoshop)来可视化我的目标,但这只是为了解释我的愿景——我意识到这在实践中可能并不合理。

我设想 3 个“层”

  1. 包含图像的底层
  2. 顶部的另一层 - 比如说 50% 的灰色 - 但降低了不透明度,因此原始层仍然可见但不再强调。
  3. 然后是顶层的两个方形对象,每个对象都充当通过灰色层的“窗口”,一直到原始层等等 - 通过这些窗口,您可以看到完全不透明的原始图像的一部分。

最后,需要能够用手指在屏幕上拖动每个窗口,以独立重新定位每个窗口。

额外的功劳是如果每个窗口都可以调整大小(不是形状 - 仍然是正方形),理想情况下可以使用某种手指手势进行调整。

我不是在寻找代码(尽管我不会反对)。我正在寻找一种在 Objective-C 中执行此操作的方法,理想情况下不需要我深入研究高级主题,例如某些图形框架。

谢谢!托尼。

4

2 回答 2

1

我会重新安排它。相反,有一个背景图像的平面图像,底部印有 50% 的灰色。然后,您拥有的两个正方形实际上是 UIImageViews,背景图像设置为固定位置,图像视图将该图像剪辑到它们的边界。当您移动两个图像视图时,您只需平移图像的原点。

抱歉,这有点难以解释我的想法。我应该试着画出来。

于 2013-02-11T22:06:37.247 回答
0

这是我将尝试的粗略概述。

我会使用 2 个视图(不是图层)。最底部的视图将是图像视图。

顶视图将是自定义视图。此自定义视图将有两个其他视图作为子视图。这两个子视图将代表两个“洞”。使用自己的手势识别器设置两个子视图来处理平移和缩放。给两个子视图(和容器视图)一个清晰的背景,可能还有一个边框。此自定义视图的主视图需要drawRect:实现其方法。该实现将绘制部分透明的灰色背景。在绘制灰色之前,它将使用两个子视图的位置和大小来设置剪切区域。

每次调整或移动 2 个子视图的大小时,您都需要调用setNeedsDisplay容器视图,以便调用该drawRect:方法以刷新带有孔的灰色背景。

于 2013-02-12T02:14:11.377 回答