带有两个图像的UIScrollview - 保持1个图像可缩放和1个图像静态(固定大小)

时间:2010-04-22 06:57:53

标签: iphone uiscrollview uiimageview first-responder

我有一个UIView,其中包含一个可缩放的UIImageView以及另一个半透明的UIView

我想要实现的是能够在保持半透明视图静止而不缩放的同时缩放UIImageView

如果我在UIView(添加到UIImageView)之上添加半透明UIScrollView,则所有内容都会缩放。但是,如果我将两个作为子视图添加到基础UIView,则仅跟踪的触摸是自从最后一个添加后的半透明UIView

我确实需要控制首先驻留在半透明UIView处进行触摸,因为我可能想要调整半透明视图的大小。但是,如果使用两根手指,我想将触摸控制传递给UIScrollView。反正我有没有实现这个目标?下一个响应者似乎不起作用。除了继承UIWindow之外,我还尝试使用hittest,但基础UIView需要推送/弹出导航控制能力,所以我认为我不能将UIWindow子类推到导航堆栈。

任何帮助都将不胜感激。

谢谢,

温斯顿

1 个答案:

答案 0 :(得分:1)

嗯..你可以尝试这个层次结构(可能是子类):

UIView (container)
 > UIView (semitransparent overlay)
 > UIScrollview
   - UIView (zoomable content)

像这样,叠加层不会缩放。

然后棘手的是多层上的用户交互。如果覆盖区中的区域不应检测用户触摸,则很容易,因为您只需将触摸应“转发”到底层图层的视图部分的UIView属性“userInteractionEnabled”设置为“NO”。

但如果我找对你,你需要更复杂的东西。您可能可以在容器UIView中设置某种主触摸控制器,找出正在发生的事情,然后调用其子视图的某些方法/转发事件。 我不知道在容器中覆盖/实现所需的所有确切方法,但请查看ScrollView Suite示例代码中的tapZoom演示。这是一个非常好的例子。

出于好奇,请问这个交互模型用于什么?