2012-07-12 108 views
1

在下面的代碼中,我試圖通過將「尺寸」中的Y參數設置爲0來使文本換行到下一行。但文本不換行。但是,如果我將其設置爲其他正值,例如「100」,它會自動換行。CCLabelTTF自動高度

此行爲記錄在整個網絡中。下面是文章之一:http://www.cocos2d-x.org/projects/cocos2d-x/wiki/How_does_CCLabelTTF_support_line_breaks_and_wrapping

CCLabelTTF *distrDescLabel = [CCLabelTTF labelWithString:@"Nullam id dolor id nibh ultricies vehicula ut id elit." 
                 dimensions:CGSizeMake(director.screenSize.width - 20, 0) 
                 hAlignment:UITextAlignmentLeft 
                lineBreakMode:UILineBreakModeWordWrap 
                 fontName:@"Helvetica" 
                 fontSize:16.0f]; 

我不論是iOS模擬器下,並作爲OS X應用程序中使用的XCode 4.3.3和2.0.1 Kobold2D和運行樣品。在這兩種情況下,結果都是一樣的。

任何人都可以驗證這是一個錯誤嗎?

+0

'kCCTextAlignmentCenter'比'UITextAlignmentLeft'一個參數'hAliginment更好:'。 – Dalinaum 2013-10-13 05:37:45

回答

-1

在cocos2d-iphone中沒有自動換行支持。鏈接指向cocos2d-x,我想他們添加了他們自己的解決方案。

在cocos2d-iphone中,您必須拆分字符串,然後顯示多個標籤,每行一個標籤。

+1

但是,如果要指定高度「尺寸:CGSizeMake(100,100)」,例如,換行符確實有效。我想在這裏實現自動高度應該很簡單。 – Rhuantavan 2012-07-13 09:07:01

+0

cocos2d支持換行符,但v維設置爲0不起作用 – OMGPOP 2013-08-02 07:07:28

0

對於CCLabelTTF標籤的自動高度我用這個簡單的程序:

while (label.contentSizeInPoints.height > targetHeight) { 
    label.fontSize = label.fontSize-0.5; 
} 

不要使用此廣泛的CCLabelTTF標籤完全在每個循環重新計算。

希望這將幫助別人