我目前使用CCScrollLayer(在cocos2d擴展類)類來實現菜單系統。它工作的很好,但我希望在屏幕上有其他按鈕,可滾動區域默認是整個屏幕。如何更改CCScrollLayer內容大小? (cocos2d擴展類)
我試圖搞亂內容大小但沒有骰子。在做了一些閱讀後,我發現內容大小設置爲每個CCLayers行爲的屏幕大小。用戶建議將其包裝在CCNode中並縮放,但這沒有幫助。
任何建議或示例代碼?我不得不認爲這應該是可能的。
我目前使用CCScrollLayer(在cocos2d擴展類)類來實現菜單系統。它工作的很好,但我希望在屏幕上有其他按鈕,可滾動區域默認是整個屏幕。如何更改CCScrollLayer內容大小? (cocos2d擴展類)
我試圖搞亂內容大小但沒有骰子。在做了一些閱讀後,我發現內容大小設置爲每個CCLayers行爲的屏幕大小。用戶建議將其包裝在CCNode中並縮放,但這沒有幫助。
任何建議或示例代碼?我不得不認爲這應該是可能的。
感謝大家的幫助,可惜的是,似乎你不能改變一個CCLayer的大小(或contentSize對觸摸事件沒有影響),而基本上重寫很多代碼。
但是,我發現了一個似乎正在工作的解決方法。在ccTouch事件開始並移動的時候,我在將我的UITouch轉換爲cocos2D空間後,檢查了我想要的邊界。如果他們不在我的範圍內,我會返回,在移動的情況下我會手動調用TouchEnded。 TouchEnded還檢查初始觸摸點,如果它超出界限,則忽略它。
事情似乎按照需要工作。如果我找到它,我會發布更多信息。再次感謝大家。
CAScrollLayer
是令人驚訝的簡單,這可能會讓人困惑。
只是內容層添加到它:
[_scrollLayer addSublayer:_contentLayer];
要設置你想上滾動層的屏幕設置界限或框架可見矩形:設置
[_scrollLayer setBounds:visibleBounds];
內容的大小。內容的大小可以更大或更小,沒關係。
[_contentLayer setBounds:currentContextBounds];
如果其含量大,你要滾動到某一點使用滾動層的scrollToPoint:
或scrollToRect:
方法。
如果需要,您需要實現自己的滾動指示器,條等。
儘管我使用表視圖而不是滾動視圖,但都共享相同的父級[滾動視圖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;
嗯,我不能找到clipToBounds屬性。 CCScrollViews父母是CCLayer,雖然它是CCNode的子代。 – Arbel
粘貼頭文件的一部分。 – Krystian
也許我不使用相同的CCScrollView導致它沒有那個構造函數。我正在使用第三方擴展程序中的一個。 https://github.com/cocos2d/cocos2d-iphone-extensions/tree/release-0。2我認爲我在我的舊項目中使用了CCTableView,但真的必須破解很多東西在一起,這看起來很棒(分頁支持,非常流暢),但我不能設置令人生氣的內容大小。 – Arbel
此問題特別針對CCScrollLayer(cocos2d擴展類)如果在cocos2d中沒有嚴重的性能匹配,我會使用其中一個UIKit類。很抱歉,問題可能有點令人困惑。 – Arbel
對不起。我沒有注意到拼寫。不幸的是,我無法幫助你使用cocos2d。 – Davyd
不用擔心。感謝您的回覆。 – Arbel