2013-08-30 191 views
1

我有一個類MTTableViewCell:UITableViewCell 該類中的init方法如下: 請注意,我將backgroundcolor設置爲紫色。自定義TableView單元格未配置

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 

    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if(self) 
    { 
    [self setBackgroundColor:[UIColor purpleColor]]; 
    } 
    return self; 

    // return [self initMVTableViewCellWithStyle:style reuseIdentifier:reuseIdentifier cellColor:nil]; 
} 

我打電話從實現代碼如下

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 

     static NSString* identifier = @"one"; 
     [self.tableView registerClass:[MVTTableViewCell class] forCellReuseIdentifier:identifier]; 

     MVTTableViewCell *cell = [[MVTTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; 

     cell.textLabel.text = [self->datasource objectAtIndex:[indexPath row]]; 
     return cell; 



    } 

但是我沒有看到在表視圖中單元格的顏色的任何變化的委託下面的方法。 什麼問題?

回答

1

我會嘗試移動你的調用註冊類到你的viewDidLoad方法,而不是alloc/initing單元,嘗試從表中取出一個。通過註冊單元的類來重用,您正準備將其用於表格的回收。注:請確保您註冊小區ID是一樣的,你在的cellForRowAtIndexPath訪問一個:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self.tableView registerClass:[MVTTableViewCell class] forCellReuseIdentifier:@"one"]; 
} 

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

    MVTTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier forIndexPath:indexPath]; 

    cell.textLabel.text = [self->datasource objectAtIndex:[indexPath row]]; 
    return cell; 
} 

不幸的是,我不是機器,我可以測試這個的我似乎無法在請記住在這種情況下的細胞調用結構(它遲了:))但我會檢查是否可能調用了不同的init,否則,請嘗試在cellFor ...中設置背景顏色以排除故障。嘗試在單元格的contentView上設置它。

+0

嘗試它。沒有工作。我正在使用alloc/init作爲測試的一種方式。出院也沒有工作。還有其他建議嗎? – newbie

+0

以下代碼修復了它:cell.textLabel.backgroundColor = [UIColor clearColor]; cell.contentView.backgroundColor = [UIColor purpleColor];所以我猜這個文本標籤的白色是阻止contentView的紫色。 – newbie

1

當我想改變我的單元格的背景顏色,我通常使用:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 

    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if(self) 
    { 
    [self.contentView setBackgroundColor:[UIColor purpleColor]]; 
    } 
    return self; 


} 
相關問題