这是一个令人困惑的问题,但我会尽力描述它。
我想要的是一个设定大小的框,在该框内,顶部会添加一行文本。随着应用程序的继续,更多行将添加到最后一行下方。当文本到达框的底部时,它不会显示,直到您向下滚动文本列表。换句话说,我希望所有文本行都包含在框中。
另外,我需要在单击某行文本时弹出一条消息,
实现这一目标的最佳方法是什么?
提前致谢!
这是一个令人困惑的问题,但我会尽力描述它。
我想要的是一个设定大小的框,在该框内,顶部会添加一行文本。随着应用程序的继续,更多行将添加到最后一行下方。当文本到达框的底部时,它不会显示,直到您向下滚动文本列表。换句话说,我希望所有文本行都包含在框中。
另外,我需要在单击某行文本时弹出一条消息,
实现这一目标的最佳方法是什么?
提前致谢!
当我在我的 Cocos2d iPhone 应用程序中执行此操作时,我使用了NSTableView
.
在 Cocos2d 中使用 Cocoa 接口类需要弄清楚一些事情,但这是值得的。如果您想查看结果,我在 Crystal Shuffle 中使用了这些。
这些项目可以响应触摸事件,并且您可以在收到这些事件时弹出窗口。我也会为此使用 Cocoa 接口类。就我而言,我使用了 NSAlert 类:
我使用 UITableView 的示例代码,使用 Cocos2d 版本 0.99.3:
@interface MyMenu : CCLayer <UITableViewDelegate, UITableViewDataSource>
{
UITableView* m_myTableView;
}
@implementation MyMenu
-(void) onEnter
{
m_myTableView = [[UITableView alloc] initWithFrame:CGRectMake(10, 10, 250, 120) style:UITableViewStylePlain];
m_myTableView.delegate = self;
m_myTableView.dataSource = self;
m_myTableView.backgroundColor = [UIColor clearColor];
m_myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
m_myTableView.rowHeight = 27;
m_myTableView.allowsSelection = NO;
}
-(void)onEnterTransitionDidFinish
{
[super onEnterTransitionDidFinish];
[[[CCDirector sharedDirector] openGLView] addSubview:m_myTableView];
[m_myTableView release];
}
在关闭层之前调用:
NSArray *subviews = [[[CCDirector sharedDirector] openGLView] subviews];
for (id sv in subviews)
{
if(((UIView*)sv).tag == e_myTableTag)
{
[((UITableView*)sv) removeFromSuperview];
}
}
您还需要相关的重载,您可以在 Apple 文档中查找:
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath