我有一个UIView我在厦门国际银行IB内,里面是一个UIScrollView是小80×80平方和动态加载8左右80×80缩略图。
所述的UIScrollView器没有限幅图像,使它们伸出任一侧,以便可以左右滑动,以滚动所选择的图像进中心,寻呼是关于这样它们卡TI每个图像。
我研究后发现,这是做到这一点的最好的,可能唯一途径。
该UIScrollView中坐落在一个“容器”的UIView的原因之一,它的存在接收触摸/滑动和传下来,这是孩子的UIScrollView否则所有触摸将有小80×80的UIScrollView面积启动,我把它们婉沿着图像的行的任意位置。
我已经看到了一些示例代码某处这样做,但就是无法实现它。
把我当作一个小白,从年初开始结束,应该如何的UIView和UIScrollView的IB中被设置为允许通过任何接触,和什么样的代码,我应该投入到哪里?
UIView的被设置为scroll_container和孩子的UIScrollView是char_scroll
目前,我已经得到了这一切除了触摸工作从父到子被过去了,此刻的接触必须始终的UIScrollView内开始(在中心微小的80×80盒)时,我希望能够刷卡向左或向右长480X80水平母公司的UIView,并有这仍然滚动孩子的UIScrollView。
希望你能帮助和理解我的意思!
我所有的instrincts说这是不是这样做的方法!
即使:
(一)苹果文档说这个工程,以及如何做到这一点;
(二),你可以得到的则hitTest thingummy工作,并得到很好的流动的UIEvent对象
如果是我,我会想到第一个变化让苹果的OS打破代码!
我会做的是:
- 使用Core Animation的API。
- 模型图像的减速,当移动手指放开他们的自己
- 尝试减速和不同的捕捉算法(尝试与不反弹),直到你找到一个可接受的用户体验(尝试在DHTML原型,然后才会进入可可触摸)的不同速率
- 停止使用的UIScrollView和使用简单的一个UIView
您需要在您的状态模型:
STATE1:在(△X,增量y)的位置的变化的要求用户在该触摸
要么
STATE2:在(△X,增量y)和(veclocity的x,速度y)和时钟()在手指的时间释放时如果图像仍减缓,而不是来休息
状态3:图像静止的
从这个动画参数可以这样计算:
初始:增量x,增量y,速度-X,速度-Y,时钟()在毫秒时间
如果支持反弹:任何干预转折点
最后:增量x,增量y,速度-X,速度-Y,时钟()在毫秒时间
和从这些动画参数,一组动画关键帧可以计算并供给到核心动画。 (大量的关键帧所必需的平滑显示在动画过程中一个自定义的减速)。
-
什么是你发现说你的建议是什么是最好的方式引用?
你可以继承的UIScrollView并重写-pointInside:withEvent:方法方法。 的UIView的默认实现返回类似CGRectContainsPoint(self.bounds,thePointToTest);. 只是测试在更宽的矩形。
你这样做的方式大多是在那里。 我试着子类的UIView通过触摸事件下来,但我第一次尝试没有工作,我发现这个,而是: 如何延长UIScrollView的响应区域
基本上,子类的UIScrollView延长其则hitTest范围。 你仍然有包含的UIView,但它会被动。
文章来源: iPhone sdk Cocoa Touch - Pass touches down from parent UIView to child UIScrollview