将cocos2d元素添加到UITableViewCell?

时间:2012-08-15 08:02:31

标签: uitableview cocos2d-iphone

我已经能够将一个UITableView添加到cocos2d层,它似乎可以滚动和处理didSelectRowAtIndexPath等委托操作。

但我想要的是将精灵放在tableview单元格上,自定义位图字体,基本上将每个UITableViewcell视为我可以使用cocos2d元素自定义的东西,但我不知道该怎么做。

// HelloWorldLayer implementation
@implementation HelloWorldLayer
@synthesize myTableView;

+(CCScene *) scene
{
    // 'scene' is an autorelease object.
    CCScene *scene = [CCScene node];

    // 'layer' is an autorelease object.
    HelloWorldLayer *layer = [HelloWorldLayer node];

    // add layer as a child to scene
    [scene addChild: layer];

    // return the scene
    return scene;
}

// on "init" you need to initialize your instance
-(id) init
{
    // always call "super" init
    // Apple recommends to re-assign "self" with the "super" return value
    if( (self=[super init])) {

        self.myTableView = [[UITableView alloc] initWithFrame:CGRectMake(10, 10, 300, 150) style:UITableViewStylePlain];
        // Set TableView Attributes
        self.myTableView.backgroundColor = [UIColor clearColor];
        self.myTableView.dataSource = self;
        self.myTableView.delegate = self;
        self.myTableView.opaque = YES;

        // Add View To Scene
        [[[CCDirector sharedDirector] openGLView] addSubview:self.myTableView];
    }
    return self;
}

// on "dealloc" you need to release all your retained objects
- (void) dealloc
{
    // in case you have something to dealloc, do it in this method
    // in this particular example nothing needs to be released.
    // cocos2d will automatically release all the children (Label)

    [self.myTableView release];
    self.myTableView = nil;

    // don't forget to call "super dealloc"
    [super dealloc];
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return @"Header";
}



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 10;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    CCLabelTTF *lblNumber = [CCLabelTTF labelWithString:@"12345" fontName:@"Georgia" fontSize:14];
    [lblNumber setAnchorPoint:CGPointMake(0, 0.5)];

    CCSprite *spriteIcon = [CCSprite spriteWithFile:@"Icon.png"];

    // I want to add my the lblNumber and spriteIcon to the uitableviewcell


    return cell;
}


// - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath


-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"You selected index - %d", indexPath.row);
}


@end

因此,我的问题是 - 如何将诸如精灵,自定义位图字体和其他cocos2d元素之类的东西添加到UITableViewCell?

由于

1 个答案:

答案 0 :(得分:0)

如果你想做那种东西,你可能不应该使用cocos2d。通过自定义UITableViewCell,可以很容易地将图像和字体添加到UITableViews中。