CCScrollView使用注意

2021-06-19 22:24:00 字數 1828 閱讀 9654

除錯了一下午發現ccscrollview的一些注意小細節

#ifndef __helloworld_scene_h__

#define __helloworld_scene_h__

#include "cocos2d.h"

#include "cocos-ext.h"

using_ns_cc;

using_ns_cc_ext;

class helloworld : public cclayer//ccscrollview

;#endif // __helloworld_scene_h__

bool helloworld::init()

ccsize visiblesize = ccdirector::shareddirector()->getvisiblesize();

ccpoint origin = ccdirector::shareddirector()->getvisibleorigin();

m_scrollview = ccscrollview::create();

getscrollview()->setcontentsize(ccsizemake(visiblesize.width * 5, visiblesize.height)); // 1

//getscrollview()->setcontentsize(ccsizemake(visiblesize.width, visiblesize.height)); //2

getscrollview()->setviewsize(visiblesize);

getscrollview()->setcontainer(getthecontainer());

getscrollview()->setdirection(kccscrollviewdirectionhorizontal);

addchild(getscrollview());

return true;

}cclayer* helloworld::getthecontainer()

//pnode->setcontentsize(ccsizemake(visiblesize.width * 5, visiblesize.height)); //3

pnode->setcontentsize(ccsizemake(visiblesize.width, visiblesize.height)); //4

return pnode;

}

建立乙個容器層,存放你要滾動的內容,然後我這裡用的是5個精靈,也就是螢幕的5倍寬,之前我並沒有3、4這段**,所以滾動後總會跳到第一張,因為沒有理解

pnode->setcontentsize的含義,我加入了5張,那個容器層的大小必須是5倍螢幕寬,而預設的是一倍螢幕寬,所以會導致那個問題。分別執行注釋1、2的**會發現滾動檢視的setcontentsize決定可以滾動的區域大小,如果是2的話,僅僅是移動,而沒有滾動。

容器大小(內容尺寸)和 顯示(可視)範圍

舉個例子,好比你透過窗戶去看風景,你一眼能看到多少取決於窗戶有多大,這裡窗戶的大小就是可視範圍。假設你和窗戶是不能移動的,如果你想看到其他不在可視範圍內的部分,就需要

ccscrollview 來幫你移動風景,容器的大小就是風景的大小,也就是風景的尺寸。

再比如有一張1000*1000畫素的,設定100*100的可視範圍,你每次只能看到百分之一的範圍,但是通過移動的位置,你能看全整張。1000*1000就是內容尺寸,100*100就是顯示範圍。

將乙個大的範圍遮起來,只露乙個小視窗,但是允許你一點一點的滾動,這就是

ccscrollview 的工作。

ios NSUserDefaults使用注意事項

nsuserdefaults適合儲存輕量級的資料,他不僅可以儲存基本資料型別,還可以儲存nsnumber integer float double nsstring,nsdate,nsarray,nsdictionary,bool型別。nsuserdefaults standarduserdefau...

HttpURLConnection使用注意事項

先上簡單 第一種 urlcon.setconnecttimeout 10000 必須設定,不設定網路異常情況會卡死在connect中 urlcon.setreadtimeout 10000 urlcon.connect in new bufferedinputstream url.openstrea...

使用HttpURLConnection注意設定超時

這幾天測試paypal的支付介面payflowapi,發現在通訊過程中如果網路中斷,那麼程式就會掛死。雖然api本身提供了timeout的設定,但似乎不管用。經過測試發現,對方的 實現只是設定了connecttimeout,這樣在建立連線的時候如果網路中斷,那麼超時以後就會報出錯誤。但如果連線建立以...