除錯了一下午發現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,這樣在建立連線的時候如果網路中斷,那麼超時以後就會報出錯誤。但如果連線建立以...