4

我目前使用CCScrollLayer(在cocos2d擴展類)類來實現菜單系統。它工作的很好,但我希望在屏幕上有其他按鈕,可滾動區域默認是整個屏幕。如何更改CCScrollLayer內容大小? (cocos2d擴展類)

我試圖搞亂內容大小但沒有骰子。在做了一些閱讀後,我發現內容大小設置爲每個CCLayers行爲的屏幕大小。用戶建議將其包裝在CCNode中並縮放,但這沒有幫助。

任何建議或示例代碼?我不得不認爲這應該是可能的。

回答

0

感謝大家的幫助,可惜的是,似乎你不能改變一個CCLayer的大小(或contentSize對觸摸事件沒有影響),而基本上重寫很多代碼。

但是,我發現了一個似乎正在工作的解決方法。在ccTouch事件開始並移動的時候,我在將我的UITouch轉換爲cocos2D空間後,檢查了我想要的邊界。如果他們不在我的範圍內,我會返回,在移動的情況下我會手動調用TouchEnded。 TouchEnded還檢查初始觸摸點,如果它超出界限,則忽略它。

事情似乎按照需要工作。如果我找到它,我會發布更多信息。再次感謝大家。

0

CAScrollLayer是令人驚訝的簡單,這可能會讓人困惑。

只是內容層添加到它:

[_scrollLayer addSublayer:_contentLayer]; 

要設置你想上滾動層的屏幕設置界限或框架可見矩形:設置

[_scrollLayer setBounds:visibleBounds]; 

內容的大小。內容的大小可以更大或更小,沒關係。

[_contentLayer setBounds:currentContextBounds]; 

如果其含量大,你要滾動到某一點使用滾動層的scrollToPoint:scrollToRect:方法。

如果需要,您需要實現自己的滾動指示器,條等。

+1

此問題特別針對CCScrollLayer(cocos2d擴展類)如果在cocos2d中沒有嚴重的性能匹配,我會使用其中一個UIKit類。很抱歉,問題可能有點令人困惑。 – Arbel

+0

對不起。我沒有注意到拼寫。不幸的是,我無法幫助你使用cocos2d。 – Davyd

+0

不用擔心。感謝您的回覆。 – Arbel

0

儘管我使用表視圖而不是滾動視圖,但都共享相同的父級[滾動視圖doh]。 您是否在設置內容大小後開啓了clipToBounds功能?

我會建議使用此構造函數:

/** 
* Init this object with a given size to clip its content. 
* 
* @param size view size 
* @return initialized scroll view object 
*/ 
- (id)initWithViewSize:(CGSize)size; 
+0

嗯,我不能找到clipToBounds屬性。 CCScrollViews父母是CCLayer,雖然它是CCNode的子代。 – Arbel

+0

粘貼頭文件的一部分。 – Krystian

+0

也許我不使用相同的CCScrollView導致它沒有那個構造函數。我正在使用第三方擴展程序中的一個。 https://github.com/cocos2d/cocos2d-iphone-extensions/tree/release-0。2我認爲我在我的舊項目中使用了CCTableView,但真的必須破解很多東西在一起,這看起來很棒(分頁支持,非常流暢),但我不能設置令人生氣的內容大小。 – Arbel