我有一个UIView
,其中包含一个可缩放的UIImageView
以及另一个半透明的UIView
。
我想要实现的是能够在保持半透明视图静止而不缩放的同时缩放UIImageView
。
如果我在UIView
(添加到UIImageView
)之上添加半透明UIScrollView
,则所有内容都会缩放。但是,如果我将两个作为子视图添加到基础UIView
,则仅跟踪的触摸是自从最后一个添加后的半透明UIView
。
我确实需要控制首先驻留在半透明UIView
处进行触摸,因为我可能想要调整半透明视图的大小。但是,如果使用两根手指,我想将触摸控制传递给UIScrollView
。反正我有没有实现这个目标?下一个响应者似乎不起作用。除了继承UIWindow
之外,我还尝试使用hittest,但基础UIView
需要推送/弹出导航控制能力,所以我认为我不能将UIWindow
子类推到导航堆栈。
任何帮助都将不胜感激。
谢谢,
温斯顿
答案 0 :(得分:1)
嗯..你可以尝试这个层次结构(可能是子类):
UIView (container)
> UIView (semitransparent overlay)
> UIScrollview
- UIView (zoomable content)
像这样,叠加层不会缩放。
然后棘手的是多层上的用户交互。如果覆盖区中的区域不应检测用户触摸,则很容易,因为您只需将触摸应“转发”到底层图层的视图部分的UIView属性“userInteractionEnabled”设置为“NO”。
但如果我找对你,你需要更复杂的东西。您可能可以在容器UIView中设置某种主触摸控制器,找出正在发生的事情,然后调用其子视图的某些方法/转发事件。 我不知道在容器中覆盖/实现所需的所有确切方法,但请查看ScrollView Suite示例代码中的tapZoom演示。这是一个非常好的例子。
出于好奇,请问这个交互模型用于什么?