2015-02-23 2 views
0

Мне удалось показать contentNode в scrollView, опубликованном в SpriteBuilder. Но не смог показать его на scrollView, сделанный программно.CCScrollView не показывает ContentNode

Я просто поместил эти коды на didLordFromCCB MainScene.m. Я ничего не сделал с проектом SpriteBuilder.

CCNodeColor* base = [CCNodeColor nodeWithColor:[CCColor blueColor] width:760 height:200]; 
base.position = ccp(30, 200); 
CCNodeColor* color0 = [CCNodeColor nodeWithColor:[CCColor magentaColor] width:100 height:100]; 
color0.position= ccp(0, 0); 
[base addChild:color0]; 

CCNodeColor* color1 = [CCNodeColor nodeWithColor:[CCColor magentaColor] width:100 height:100]; 
color1.position= ccp(660, 0); 
[base addChild:color1]; 

CCNodeColor* color2 = [CCNodeColor nodeWithColor:[CCColor magentaColor] width:100 height:100]; 
color2.position= ccp(330, 100); 
[base addChild:color2]; 

CCScrollView* sv = [[CCScrollView alloc]initWithContentNode:base]; 
[self addChild:sv]; 

sv.horizontalScrollEnabled = YES; 
sv.contentSize = CGSizeMake(260, 200); 
[sv setPositionInPoints:ccp(30, 200)]; 
+0

попытайтесь установить эту логику в onEnter, где определен размер содержимого родительского узла. – YvesLeBorg

+0

Спасибо. Я помещал эти коды в метод onEnter, но scrollView не отображался. –

ответ

1

Я знаю, что я опаздываю, но, может быть, я все еще могу помочь кому-то:

Внутри CCScrollView инициализации я нашел эту строку:

self.contentSizeType = CCSizeTypeNormalized; 

Так что вам просто нужно установить contentSizeType назад к «CCSizeTypePoints»:

sv.contentSize = CCSizeTypePoints; 
sv.contentSize = CGSizeMake(260, 200); 

Надеюсь, это поможет! Я подписал несколько минут назад, чтобы оставить комментарий:

+0

Хорошие ответы никогда не слишком поздно, чтобы они были предоставлены этому сообществу. stackoverflow не оценивает серьезное копание как что-то плохое, если оно помогает людям, которые могут найти решение в вашем ответе. – GottZ