W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
類說明
CAPageView用于實現分頁、翻頁效果。CAPageView為我們提供了橫向和豎直兩個方向的樣式。我也可以通過繼承CAPageViewDelegate來實現對CAPageView的監(jiān)聽。
CAPageView 屬性(點擊查看方法介紹)
屬性 | 說明 |
PageViewDirection | 頁面瀏覽方向 |
PageViewDelegate | 頁面視圖代表 |
CurrPage | 當前頁 |
Spacing | 間距 |
CAPageView 方法(點擊查看方法介紹)
方法 | 說明 |
createWithFrame | 創(chuàng)建,并指定其Frame,默認Frame為(0,0,0,0) |
createWithCenter | 創(chuàng)建,并指定其Center,默認Center為(0,0,0,0) |
setCurrPage | 設置顯示指定頁 |
getPageCount | 獲取頁面總數 |
setViews | 添加存放View的CADeque容器 |
setViews | 添加存放View的CAVector容器 |
getSubViewAtIndex | 通過索引獲取子視圖 |
setShowsScrollIndicators | 設置顯示滾動條 |
init | 初始化 |
我來看一下代碼實例:
首先我們需要繼承CAPageViewDelegate實現監(jiān)聽函數。我們在.h文件中添加如下代碼:
#include <iostream>
#include "CrossApp.h"
USING_NS_CC;
class FirstViewController : public CAViewController, public CAPageViewDelegate
{
public:
FirstViewController();
virtual ~FirstViewController();
//切換開始時調用
virtual void pageViewDidBeginTurning(CAPageView* pageView);
//切換結束時調用
virtual void pageViewDidEndTurning(CAPageView* pageView);
//選擇當前的切換頁時調用
virtual void pageViewDidSelectPageAtIndex(CAPageView* pageView, unsigned int index, const DPoint& point);
protected:
void viewDidLoad();
void viewDidUnload();
};
然后在.cpp中實現邏輯:
void FirstViewController::viewDidLoad()
{
//生命一個CAVector作為添加到PageView的容器
CAVector<CAView*> viewVector;
//獲得屏幕的rect
DRect winRect = this->getView()->getBounds();
//創(chuàng)建CALabel
CALabel* labelView = CALabel::createWithFrame(winRect);
//設置為居中
labelView->setTextAlignment(CATextAlignmentCenter);
labelView->setVerticalTextAlignmet(CAVerticalTextAlignmentCenter);
labelView->setFontSize(75);
//設置文本內容
labelView->setText(UTF8("第一個View"));
//創(chuàng)建CAImageView
CAImageView* imageView = CAImageView::createWithImage(CAImage::create("HelloWorld.png"));
//設置顯示區(qū)域
imageView->setFrame(winRect);
//創(chuàng)建一個藍色的View
CAView* view = CAView::createWithColor(CAColor_blue);
//設置顯示區(qū)域
view->setFrame(winRect);
//創(chuàng)建CALabel
CALabel* lastLabel = CALabel::createWithFrame(winRect);
//設置居中
lastLabel->setTextAlignment(CATextAlignmentCenter);
lastLabel->setVerticalTextAlignmet(CAVerticalTextAlignmentCenter);
lastLabel->setFontSize(75);
//設置顯示文本
lastLabel->setText(UTF8("最后一個View"));
//將lastLabel添加到view
view->addSubview(lastLabel);
//將上面的三個控件放入到CAVector容器內
viewVector.pushBack(labelView);
viewVector.pushBack(imageView);
viewVector.pushBack(view);
/*創(chuàng)建一個CAPageView并設置為水平滾動
CAPageViewDirectionHorizontal:水平
CAPageViewDirectionVertical:豎直
*/
CAPageView* pageViewTest = CAPageView::createWithCenter(DRect(winRect.size.width*0.5, winRect.size.height*0.5, winRect.size.width, winRect.size.height), CAPageView::CAPageViewDirectionHorizontal);
//設置監(jiān)聽
pageViewTest->setPageViewDelegate(this);
//將CAVector添加到pageViewTest
pageViewTest->setViews(viewVector);
pageViewTest->getPageCount();
//將pageViewTest添到屏幕顯示
this->getView()->addSubview(pageViewTest);
}
void FirstViewController::viewDidUnload()
{
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
void FirstViewController::pageViewDidBeginTurning(CAPageView* pageView)
{
CCLog("Begin--->");
}
void FirstViewController::pageViewDidEndTurning(CAPageView* pageView)
{
CCLog("End--->");
}
void FirstViewController::pageViewDidSelectPageAtIndex(CAPageView* pageView, unsigned int index, const DPoint& point)
{
CCLog("Index:%d",index);
}
我們創(chuàng)建了一個含有三個CAView的CAPageView,橫向滑動可以切換到不同的CAView,在我們切換時候會調用pageViewDidBeginTurning函數和pageViewDidEndTurning函數,當我們點擊某個頁面的時候pageViewDidSelectPageAtIndex會被調用。
CAPageView 屬性說明
類型:CAPageViewDirection
解釋:頁面瀏覽方向。get{}。
類型:CAPageViewDelegate*
解釋:頁面視圖代表。set/get{}。
類型:int
解釋:當前頁。get{}。
類型:int
解釋:間距。set/get{}。
CAPageView 方法說明
static CAPageView* createWithFrame(const CCRect& rect, const CAPageViewDirection& type);
返回值:CAPageView*
參數:
類型 | 參數名 | 說明 |
CCRect& | rect | 大小 |
CAPageViewDirection& | type | 類型 |
解釋:創(chuàng)建,并指定其Frame,默認Frame為(0,0,0,0)
static CAPageView* createWithCenter(const CCRect& rect, const CAPageViewDirection& type);
返回值:CAPageView*
參數:
類型 | 參數名 | 說明 |
CCRect& | rect | 大小 |
CAPageViewDirection& | type | 類型 |
解釋:創(chuàng)建,并指定其Center,默認Center為(0,0,0,0)
void setCurrPage(int var, bool animated, bool listener = false);
返回值:void
參數:
類型 | 參數名 | 說明 |
int | var | 頁面數 |
bool | animated | 動畫 |
bool | listener | 監(jiān)聽 |
解釋:設置顯示指定頁
返回值:unsigned int
參數:
解釋:獲取頁面總數
void setViews(const CADeque<CAView*>& vec);
返回值:void
參數:
類型 | 參數名 | 說明 |
CADeque<CAView*>& | vec | CADeque容器 |
解釋:添加存放View的CADeque容器
void setViews(const CAVector<CAView*>& vec);
返回值:void
參數:
類型 | 參數名 | 說明 |
CAVector<CAView*>& | vec | CAVector容器 |
解釋:添加存放View的CAVector容器
CAView* getSubViewAtIndex(int index);
返回值:CAView*
參數:
類型 | 參數名 | 說明 |
int | index | 索引 |
解釋:通過索引獲取子視圖
virtual void setShowsScrollIndicators(bool var);
返回值:void
參數:
類型 | 參數名 | 說明 |
bool | var | 是否顯示滾動條 |
解釋:設置顯示滾動條
返回值:bool
參數:
解釋:初始化
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: