2012-02-10 69 views
0

我在UITableView中使用多个单元格类型的代码在uitableview中使用多个单元格类型的问题

问题是单元格文本是不可见的。

代码:

static NSString *kCellIdentifier = @"NewsViewControllerTableCell"; 
static NSString *kCellIdentifier2 = @"SubscribeCell"; 


if ((indexPath.row==0) && ([[NSUserDefaults standardUserDefaults] boolForKey:@"subscribeButtonOption"])) 
{ 
    SubscribeCell* cell = (SubscribeCell*)[tableView dequeueReusableCellWithIdentifier:kCellIdentifier2]; 

    if (cell == nil) { 
     cell = [[[SubscribeCell alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 35.0) reuseIdentifier:kCellIdentifier2] autorelease]; 
     cell.contentView.backgroundColor = kColorR53G53B53; 
     cell.subscribeLabel.font = kLucidaSansStdFontBold_14; 
     cell.subscribeLabel.textColor = [UIColor whiteColor]; 
    } 

    cell.subscribeLabel.textColor=[UIColor redColor]; 
    cell.subscribeLabel.text = @"+ SUBSCRIBE TO NEWSLETTER"; 


    cell.selectedBackgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; 
    cell.selectedBackgroundView.backgroundColor =kColorR53G53B53; 


    [cell setNeedsDisplay]; 
    return cell;   
} 

else 
{ 
    //another cell 
} 

=========

头:

#import <UIKit/UIKit.h> 

@interface SubscribeCell : UITableViewCell{ 
    UILabel *subscribeLabel; 
} 

@property(nonatomic, retain) UILabel *subscribeLabel; 

@end 

为的cellForRowAtIndexPath以及细胞类代码的代码在下面给出而实现类:

#import "SubscribeCell.h" 

@implementation SubscribeCell 
@synthesize subscribeLabel; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 

     subscribeLabel=[[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 323.0, 40.0)]; 
     subscribeLabel.textColor=[UIColor whiteColor]; 
     self.backgroundColor=kColorR53G53B53; 

    } 
    return self; 
} 

回答

2

检查subscribeLabel是否为零。你在initWithNibName:bundle:创造,但与initWithFrame:reuseIdentifier:被初始化,所以它没有达到您的标签创建代码。

+2

和subscribeLabel不是IBOutlet中或不加入细胞作为子视图 – NeverBe 2012-02-10 20:52:28

+0

良好的渔获物,错过了。 – 2012-02-10 20:59:13

+0

嘿..固定它@NeverBe – Ahsan 2012-02-10 21:03:07

1

如果我尝试编译你的代码,我得到一个错误消息,指出的UITableViewCell未声明调用方法“initWithNibName:捆绑:”。你应该使用正确的初始化方法'initWithStyle:reuseIdentifier:'。您也忘记将subscribeLabel添加到单元格的contentView。

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     subscribeLabel=[[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 323.0, 40.0)]; 
     subscribeLabel.textColor=[UIColor whiteColor]; 
     [self.contentView addSubview:subscribeLabel]; 
     self.backgroundColor=kColorR53G53B53; 
    } 
    return self; 
} 
相关问题