我正在开发某种卡片游戏,其中我的视图对象(卡片等)都是CALayer。这些对象被添加为mainBoard
(CALayer)的子图层,而该子图层又是mainView
的[UIView layer]
属性的子图层。一切正常,我可以做正确的测试,以确认通过mainView
类的touchesBegan:withEvent:
回调正常触摸哪个图层,依此类推。CALayer内的UIScrollView
不过,我需要让我的mainBoard
内滚动显示“做大” CALayers,所以我第一次尝试将“做大”的CALayer一个CAScrollLayer
里面,但我注意到,CAScrollLayer
并没有真正滚动(没有按”处理用户输入,既不绘制滚动条)。所以,解决方法是直接将UIScrollView添加到mainView
UIView。 UIScrollView
完美滚动,直到我尝试使用[scrollView.layer addSublayer:<bigger layer>]
将“更大”图层添加到它。
有没有人有任何想法,我怎么可以有一个CALayer“可滚动”的对象?
谢谢!
增加大层滚动视图时,除此之外,我认为直接添加子层scrollView.layer到底发生了什么?是不是一个好主意,你为什么不把它们添加到包含视图的层通过你的滚动视图? – nacho4d 2010-12-15 19:00:26
你可以定义什么是“更大”的CALayers?你能简单地描述为什么“更大”的物品必须是CALayers?通过阅读你的问题,我想知道你为什么不简单地使用UIScrollView - 它包含了你所要求的一切,最好不要重新实现。 – Mark 2011-01-17 18:22:38
我的整个应用程序由CALayers对象组成,因为我正在使用Core Animation级别而不是UIKit抽象级别。问题是,核心动画不提供滚动组件,所以我不得不做一个变通方法混合的UIKit对象(UIScrollView中)和CoreAnimation对象(CALayers),使它们无缝地工作。这不是一个问题,因为UIKit只是CoreAnimation的一个包装。谢谢 – 2011-01-20 13:23:49