iPhone sdk Cocoa触控-将触控从父UIView传递到子UIScrollview

iPhone sdk Cocoa触控-将触控从父UIView传递到子UIScrollview,iphone,cocoa-touch,uikit,uiview,uiscrollview,Iphone,Cocoa Touch,Uikit,Uiview,Uiscrollview,我在IB中的xib中有一个UIView,里面是一个UIScrollview,它是一个小的80x80正方形,动态加载了8个左右的80x80缩略图 UIScrollview不会剪切图像,使其延伸到任意一侧,以便您可以左右滑动以将所选图像滚动到中心,分页处于打开状态,以便它们捕捉每个图像 我研究发现这是最好的,也可能是唯一的方法 UIScrollview位于“容器”UIView中有一个原因,它是用来接收触摸/滑动并将它们传递给它的子UIScrollview的,否则所有触摸都必须从80x80 UIScr

我在IB中的xib中有一个UIView,里面是一个UIScrollview,它是一个小的80x80正方形,动态加载了8个左右的80x80缩略图

UIScrollview不会剪切图像,使其延伸到任意一侧,以便您可以左右滑动以将所选图像滚动到中心,分页处于打开状态,以便它们捕捉每个图像

我研究发现这是最好的,也可能是唯一的方法

UIScrollview位于“容器”UIView中有一个原因,它是用来接收触摸/滑动并将它们传递给它的子UIScrollview的,否则所有触摸都必须从80x80 UIScrollview的小区域开始,我希望它们位于图像行的任何位置

我在某处看到了一些这样做的示例代码,但就是无法实现它

把我当作一个noob,从头到尾,UIView和UIScrollview应该如何在IB中设置以允许传递任何接触,我应该在哪里输入什么代码

UIView设置为scroll\u容器,子UIScrollview设置为char\u scroll

目前,除了父母传给孩子的触碰之外,我已经让一切都运转起来了,目前,当我想在长480X80水平父UIView中向左或向右滑动时,触摸必须始终从中间的UIScrollview微小的80x80框内开始,并且仍然滚动子UIScrollview


希望你能帮助和理解我的意思

我所有的仪器都说这不是做这件事的方法

即使:

a苹果的文档说这是有效的,以及如何做到这一点

b您可以让hitTest工作起来,让UIEvent对象运行良好

如果是我,我希望苹果对操作系统所做的第一次修改能够打破代码

我要做的是:

使用核心动画API。 模拟移动手指放开图像时图像的减速 尝试不同的减速率和不同的捕捉算法尝试使用和不使用反弹,直到找到可接受的用户体验在进入Cocoa Touch之前尝试在DHTML中创建原型 停止使用UIScrollView,只使用UIView 您需要在您所在的州建模:

状态1:用户在此触摸上请求的增量x、增量y位置更改

状态2:如果图像仍在减速且未停止,则释放时手指的δx、δy和向量x、速度y和时钟时间

状态3:图像静止

由此可以计算动画参数:

初始值:delta-x,delta-y,velocity-x,velocity-y,时钟时间(毫秒)

如果支持反弹:任何中间转折点

最终:delta-x,delta-y,velocity-x,velocity-y,时钟时间(毫秒)

根据这些动画参数,可以计算出一组动画关键帧并将其输入到核心动画中。要在动画期间平滑显示自定义减速,需要大量关键帧

-


您发现哪些引用表明您建议的是最佳方法?

您可以将UIScrollView子类化,并重写-pointInside:withEvent:方法。UIView的默认实现返回类似于CGRectContainsPointself.bounds的内容,即PointToTest;。只需在更宽的矩形上进行测试。

您的测试方法基本上就是这样。我尝试将UIView子类化以向下传递触控事件,但我的第一次尝试没有成功,而是发现了以下情况:

基本上,子类UIScrollView可以扩展其hitTest范围。您仍将拥有包含UIView的视图,但它将是被动的