在cocos2d图层上的uitableview中创建自定义uitableviewcell

时间:2012-07-13 12:27:33

标签: iphone ios uitableview uiviewcontroller cocos2d-iphone

首先是显示包含uitableview的uiviewcontroller的代码:

//View Controller with navigation bar
InAppPurchaseViewController *purchaseViewController = [[InAppPurchaseViewController alloc] init];
purchaseViewController.title = @"Liste de packs";
purchaseViewController.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissViewController:)] autorelease];

//Creation de la navigation bar et release du viewcontroller
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:purchaseViewController] autorelease];
[purchaseViewController release];

container = [[UIViewController alloc] init];
[container setView:[[CCDirector sharedDirector] openGLView]];
[container setModalTransitionStyle: UIModalTransitionStyleCoverVertical];
[container presentModalViewController: navController animated: YES];

这是我的uitableviewcell:

InAppPurchaseCell.h

@interface InAppPurchaseCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UIImageView *ImageThumbnail;
@property (strong, nonatomic) IBOutlet UIButton *BuyButton;
@property (strong, nonatomic) IBOutlet UILabel *TitleLabel;
@property (strong, nonatomic) IBOutlet UILabel *PriceLabel;
@end

InAppPurchaseCell.m

@implementation InAppPurchaseCell
@synthesize PriceLabel;
@synthesize TitleLabel;
@synthesize BuyButton;
@synthesize ImageThumbnail;

-(id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self)
    {
    }
    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];  
}
@end

InAppPurchaseCell.xib

所有ibout都正确链接

并且:

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellIdentifierCasual = @"ShopCell";
    InAppPurchaseCell *cell = (InAppPurchaseCell*)[tableView dequeueReusableCellWithIdentifier:cellIdentifierCasual];
    if (cell == nil) 
    {
        cell = (InAppPurchaseCell*)[[[NSBundle mainBundle] loadNibNamed:@"InAppPurchaseCell" owner:nil options:nil]lastObject];
        cell.selectionStyle = UITableViewCellSelectionStyleGray;
    }
    else
    {
        cell.selectionStyle = UITableViewCellSelectionStyleGray;
    }
    Packages *packages = [PackagesParser loadData];
    Package *package = [packages.Packages objectAtIndex:indexPath.row];

    cell.ImageThumbnail.image = [UIImage imageNamed:@"Icon-Small.png"];
    cell.PriceLabel.text = @"0,75$";
    cell.TitleLabel.text = package.Name; 

    return cell;
}

桌子弹出时有什么好处:

2012-07-13 13:56:55.378 Testing[1276:1c103] *** Terminating app due to uncaught 
exception 'NSUnknownKeyException', reason: '[<NSObject 0xa10da00> 
setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key ImageThumbnail.'

在这一行:

cell = (InAppPurchaseCell*)[[[NSBundle mainBundle] loadNibNamed:@"InAppPurchaseCell" owner:nil options:nil]lastObject];

有人有想法吗?

1 个答案:

答案 0 :(得分:1)

这可能会对你有所帮助

InAppPurchaseCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell==nil) {     
   cell=[[InAppPurchaseCell alloc]initWithFrame:CGRectMake(0, 0, 200, 100)     
   reuseIdentifier:@"ShopCell"];
}