【问题标题】:CCTableView with cocos2d 3.0CCTableView 与 cocos2d 3.0
【发布时间】:2014-06-22 10:24:09
【问题描述】:

我正在尝试让 CCTableView 与 cocos2d 3.0 一起工作,但我真的不知道从哪里开始。有没有人有一个很好的教程或3.0的任何东西?我看到有一些旧版本的 cocos2d 但没有 3.0。任何帮助表示赞赏!谢谢!

【问题讨论】:

  • 要求我们推荐或查找教程的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。

标签: cocos2d-iphone


【解决方案1】:

这是一个简短的示例。我确实建议您尝试自己编写一些代码,然后发布您遇到的问题。它绝对可以更轻松地回答问题。如果需要,您还可以创建自己的 CCTableViewCell 子类。

头文件,SampleTableView.h

#import "cocos2d.h"
#import "cocos2d-ui.h"

@interface SampleTableView : CCNode <CCTableViewDataSource>
@end

源文件:SampleTableView.m

float const kNumberOfRows = 30.0f;

@implementation SampleTableView

- (instancetype)init
{
    self = [super init];
    if (self) {
        CCTableView* table = [CCTableView node];
        table.dataSource = self; // make our class the data source
        table.block = ^(CCTableView* table) {
            NSLog(@"Cell %d was pressed", (int) table.selectedRow);
        };
        [self addChild:table];
    }
    return self;
}

- (CCTableViewCell*) tableView:(CCTableView*)tableView nodeForRowAtIndex:(NSUInteger) index {
    CCTableViewCell* cell = [CCTableViewCell node];
    cell.contentSizeType = CCSizeTypeMake(CCSizeUnitNormalized, CCSizeUnitUIPoints);
    cell.contentSize = CGSizeMake(1.0f, 32.0f);
    float colorFactor = (index / kNumberOfRows);
    // Just a sample node that changes color with each index value
    CCNodeColor* colorNode = [CCNodeColor nodeWithColor:[CCColor colorWithRed:colorFactor green:(1.0f - colorFactor) blue:(0.2f + 0.5 * colorFactor) ] width:100.0f height:18.0f];
    [cell addChild:colorNode];
    return cell;
}

- (NSUInteger) tableViewNumberOfRows:(CCTableView*) tableView {
    return kNumberOfRows; // just a demo
}

以及如何将它添加到你的 hello world 场景或其他地方:

SampleTableView* table = [SampleTableView node];
table.contentSizeType = CCSizeTypeNormalized;
table.contentSize = CGSizeMake(1.0, 1.0);

以下是其外观的示例屏幕截图:

【讨论】:

  • 您能否在您的代码中包含我们如何检测单元格是否被录音?
  • @João Abrantes 到目前为止,尽管单元格有一个按钮,但我自己还没有找到方法。似乎滚动视图吞噬了事件
  • @JoãoAbrantes 我更新了示例以包含按下单元格时的块。您还需要确保 TableViewCell 具有正确的尺寸。
  • @AlexanderN 确保 Cell 的大小正确,否则它可能无法注册触摸。
【解决方案2】:

您应该查看 cocos2d 源代码中的 cocos2d-tests-ios.xcodeproj。 它有一个几乎所有在 cocos2d 中实现的样例,包括一个 CCTableView 样例。

https://github.com/cocos2d/cocos2d-iphone

  1. git clone cocos2d 源码。
  2. 打开 cocos2d-tests-ios.xcodeproj 项目并构建/运行 cocos2d-tests-ios 目标。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多