label:setFontName(DEFAULT_FONT);
label:getVirtualRenderer():setLineSpacing(spacing)--行间距
label:setContentSize()
label:setTextAreaSize();
label:setFontSize();
label:setTextColor();
label:setAnchorPoint(cc.p(0,1));
label:setPosition();
label:setString()
node:addChild(label);
label:setTextAreaSize高度为0表示自适应高。
如果text设置了行间距,但是ContentSize的大小不会变化,要获取正确的,请使用渲染大小
string:getVirtualRenderer():getContentSize().height
:附带一串创建一个文本tableview的方法
--创建一个文字的view
function createTextTableView( name , bg, stringnode ,position ,viewsize , spacing)
-- body
local textview = bg:getChildByName(name);
if textview then
textview:reloadData();
return
end
if not viewsize then
viewsize = cc.size(bg:getContentSize().width-20, bg:getContentSize().height-40);
end
local _height = viewsize.height;
local _textHeight = stringnode:getVirtualRenderer():getContentSize().height;
if not textview then
textview = cc.TableView:create(viewsize);
textview:setDirection(cc.SCROLLVIEW_DIRECTION_VERTICAL);
textview:setPosition(position);
textview:setBounceable(true)
textview:setDelegate();
textview:setName(name);
bg:addChild(textview);
if _textHeight < _height then
textview:setTouchEnabled(false);
else
textview:setTouchEnabled(true);
end
end
local function numberofCellsInfo(table)
return 1;
end
local function cellSizeForInfo(table,idx)
--return stringnode:getContentSize().width, stringnode:getContentSize().height;
return stringnode:getContentSize().width, _textHeight;
end
local function cellTouchedInInfo(table,cell)
cclog("touch cell"..cell:getIdx());
end
local function infoCellAtIndex(Table,idx)
local cell = Table:dequeueCell()
if nil == cell then
cell = cc.TableViewCell:new()
end
cell:removeAllChildren(true);
local label = ccui.Text:create();
label:setFontName(DEFAULT_FONT);
if spacing then
label:getVirtualRenderer():setLineSpacing(spacing)--行间距
else
label:getVirtualRenderer():setLineSpacing(stringnode:getVirtualRenderer():getLineSpacing())--行间距
end
--label:setContentSize(cc.size(stringnode:getContentSize().width, stringnode:getContentSize().height - 20))
--label:setTextAreaSize(cc.size(stringnode:getContentSize().width, 0));
label:setFontSize(stringnode:getFontSize());
label:setTextColor(stringnode:getTextColor());
label:setAnchorPoint(cc.p(0,1));
label:setPosition(cc.p(0, _textHeight));
label:setString(stringnode:getString())
cell:addChild(label);
return cell;
end
textview:registerScriptHandler(numberofCellsInfo,cc.NUMBER_OF_CELLS_IN_TABLEVIEW);
textview:registerScriptHandler(cellTouchedInInfo,cc.TABLECELL_TOUCHED);
textview:registerScriptHandler(cellSizeForInfo,cc.TABLECELL_SIZE_FOR_INDEX);
textview:registerScriptHandler(infoCellAtIndex,cc.TABLECELL_SIZE_AT_INDEX);
textview:setVerticalFillOrder(cc.TABLEVIEW_FILL_TOPDOWN);
textview:reloadData();
end