W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
大家學(xué)習(xí)CrossApp的時(shí)候,搞清楚基礎(chǔ)概念性的東西,能夠大大提高我們學(xué)習(xí)CrossApp的效率。今天就和大家簡(jiǎn)單談?wù)凜rossApp的坐標(biāo)系統(tǒng)。
CrossApp采用的坐標(biāo)系是屏幕坐標(biāo)系,即左上角為原點(diǎn),向右為X軸增長(zhǎng)方向、向下對(duì)應(yīng)Y軸增長(zhǎng)方向。如圖:
除了顯示內(nèi)容和處理事件之外,試圖還可以管理一個(gè)或多個(gè)子視圖。我們可以在一個(gè)view上面添加多個(gè)子view,而作為父view,即父節(jié)點(diǎn),負(fù)責(zé)管理其直接子視圖,并根據(jù)需要調(diào)整他們的位置和尺寸,以及響應(yīng)他們沒有處理的事件。
根據(jù)類說明我們可以得出以下結(jié)論:
新手朋友可能不看明白父節(jié)點(diǎn)和子視圖的概念 并且B是添加在A上的,假如這時(shí)候,我們調(diào)整A的坐標(biāo)位置,那么B也將隨A的坐標(biāo)改變而改變。這樣我們就說:B是A的子節(jié)點(diǎn)(也稱子視圖),A是B的父節(jié)點(diǎn)。 由于B是A的子節(jié)點(diǎn)(子視圖),那么B則可以使用A的節(jié)點(diǎn)坐標(biāo)系
,我畫圖來說明:
如圖所示,屏幕上顯示了兩個(gè)CAView分別是A和B,
CAView在坐標(biāo)系中定義了屬性:DLayout。API定義如下:
Layout
類型:DLayout
解釋:確定view在屏幕上顯示的自適應(yīng)方式。
//Frame
CAView * frameView = CAView::createWithColor(CAColor_blue);
frameView->setFrame(DRect(100, 100, 100, 100));
//this->getView()->addSubview(frameView);
//添加并設(shè)置z為2
this->getView()->insertSubview(frameView, 2);
//Bounds
CAView* boundsView = CAView::createWithColor(CAColor_red);
boundsView->setBounds(DRect(300, 300, 100, 100));
this->getView()->addSubview(boundsView);
//Center
CAView* centerView = CAView::createWithColor(CAColor_orange);
centerView->setCenter(DRect(100, 100, 100, 100));
//this->getView()->addSubview(centerView);
//添加并設(shè)置z為1
this->getView()->insertSubview(centerView, 1);
測(cè)試View縮放后,frame和bounds的變化:
//縮放后的Frame和Bounds
frameView->setScale(2);
DRect frameRect = frameView->getFrame();
DRect boundsRect = frameView-> getBounds();
CCLog( "frameView->getFrame():x:%f,y:%f,width:%f,height:%f", frameRect.getMinX(), frameRect.getMinY(), frameRect.getMaxX() - frameRect.getMinX(), frameRect.getMaxY() - frameRect.getMinY() );
CCLog( "frameView->getBounds():x:%f,y:%f,width:%f,height:%f", boundsRect.getMinX(), boundsRect.getMinY(), boundsRect.getMaxX() - boundsRect.getMinX(), boundsRect.getMaxY() - boundsRect.getMinY() );
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: