2017-04-06 13 views
-1

上のUITableViewCellを追加するにはどうすればUITableView を追加UIViewクラスは、今私はUITableViewCellUITableViewCellにカスタムセルを追加したい作成しました。なかれはUIViewのテーブルビュー

ノートのnilをセルオブジェクトが、関連lbl_ColorNameとcolorImageを作成している

- (id)initWithCoder:(NSCoder *)coder{ 

    self = [super initWithCoder:coder]; 
    if (self) { 
      //do somthing 
     filterColorTableView.delegate = self; 
     filterColorTableView.dataSource = self; 

     [self.filterColorTableView registerNib:[UINib nibWithNibName:@"FilterColor" bundle:nil] forCellReuseIdentifier:@"COLORCELL"]; 

     colorNameList = [[ColorModelClass colorListNames]allKeys]; 
     filterColorTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 

    } 

    return self; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{  
    static NSString *tableViewCellIdentifier = @"COLORCELL"; 
    FilterColorTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableViewCellIdentifier forIndexPath:indexPath]; 
    [cell.lbl_ColorName setText:@"Welcome"] ; 
    cell.lbl_ColorName.textColor = [UIColor redColor]; 
    [cell.colorImage setImage:[UIImage imageNamed:@"circle.png"]]; 
    return cell; 

} 

Crash Report Message: 

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier COLORCELL - must register a nib or a class for the identifier or connect a prototype cell in a storyboard' 

は次のとおりです。私はのUIViewControllerを使用していないだけでUIViewクラスは、このアプローチで使用されています。

UIViewでは、XibはUITableViewを追加し、同じファイルのOwnerで別のカスタムUITableViewCellを取得しました。 viewDidLoadで、または後にいつでも

enter image description here

+0

あなたがテーブルビューでセルを登録していますか?それをデキューするには? – HarmVanRisk

+0

@HarmVanRiskはい私はしました。 – kiran

+0

xibファイルのセルをハイライト表示するときに、属性インスペクタに識別子を追加しましたか? – HarmVanRisk

答えて

0

まずregister the custom cell class。これを実行した後、クラスまたはnib登録とともに導入されたthe dequeue methoddequeueReusableCellWithIdentifier:forIndexPath:です。新しいindexPathパラメーターに注意してください。 nilのチェックは不要であるので、それは常に、初期化されたセルを返し

は...

FilterColorTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:filterTableViewCell forIndexPath:indexPath]; 
// deleted if(cell == nil){...} 
+0

私は登録しようとしましたが、今は 'NSInternalInconsistencyException'がクラッシュしました。理由: '識別子でセルをデキューできません。COLORCELL - 識別子のnibまたはクラスを登録するか、ストーリーボードのプロトタイプセルを接続する必要があります。 "COLORCELL"、もっと詳しく質問を更新しました。 – kiran

+0

Hmm。私は、これがinitWithCoderのコンテキスト内にあることを認識していませんでした。これはinitでの作業が早すぎるように思えます。あなたは 'didLayoutSubviews'にテーブル設定のものを移動できますか? – danh

関連する問題