大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
一个RPG游戏转换到Xcode7.2下发现一个问题,原来可以上下滚动的CCTableView控件现在不可以滚动了.
控制台中可以看到输出的警告:
WARNING: A Gesture recognizer (<CCTapDownGestureRecognizer: 0x611000042e40; baseClass =
UIGestureRecognizer; state = Possible; view = <CCGLView
<CCTableView 0x616000030380>)>>) was setup in a storyboard/xib to be added to more than one view (->
<CCGLView: 0x61500000d500; frame = (0 0; 568 320);
gestureRecognizers = <NSArray: 0x6040000c4850>; layer =
<CAEAGLLayer: 0x603000013840>>) at a time, this was never
allowed, and is now enforced. Beginning with iOS 9.0 it
will be put in the first view it is loaded into.
貌似在iOS 9.x后原来可以在多个view中添加的手势识别器只能在第一个视图中起作用了,估计是CCTableView中使用了这个特性.
深入Cocos2D代码修改,目前还没有这个精力,遂采用变通方法,在CCTableView旁边加入一个滚动条来实现滚动效果.
有2种添加滚动条的方法,你可以在SpriteBuilder中的添加:
你也可以在代码中手动添加,后者的自由度更高些,本猫采用后一种方法,实现效果如下:
而原来在iOS 9之前的系统中,滚动是有效的,所以可以根据系统自动显示或隐藏滚动条以实现最佳效果.