1

我有一个UIView包含一个可缩放UIImageView和另一个半透明UIView的。

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

如果我在(添加到)UIView顶部添加半透明,一切都会缩放。但是,如果我将两者都作为子视图添加到 base ,则仅跟踪触摸是半透明的,因为它是最后一个添加的。UIImageViewUIScrollViewUIViewUIView

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

任何帮助,将不胜感激。

谢谢,

温斯顿

4

1 回答 1

1

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

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

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

棘手的事情是多层上的用户交互。如果您的叠加层中有不应该检测到用户触摸的区域,这很容易,因为您只需将 UIView 属性“userInteractionEnabled”设置为“否”,以将触摸应该“转发”到底层图层的视图部分。

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

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

于 2010-04-23T10:16:25.347 回答