2017-04-13 7 views

答えて

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

これはUITableViewのデリゲートメソッドです。返されるオブジェクトの型はUITableViewCellです。これらはテーブルの行に表示されるオブジェクトです。 NSIndexPathには、このセクションと行が2つあります。

ビューコントローラでUITableViewDataSourceプロトコルを実装する場合に呼び出されます。より簡単な方法は、UITableViewControllerクラスを追加することです。 Appleがテーブルを記述できる関数を簡単に実装するためのコードを書いているので、これを強くお勧めします。とにかく、このプロトコルを自分で実装することを選択した場合は、UITableViewCellオブジェクトを作成して、それを任意の行に返す必要があります。表ビューに表示されているセルが繰り返し再利用されるため、再利用性を理解するためのクラス参照を参照してください(これは非常に効率的な設計です)。

あなた実装するカスタムセルの場合は、その後、私は強く、あなたがここで設定するだけでなく、空のセルを返すように

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

を使用することをお勧めします。

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

    CartTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCart_Cell" forIndexPath:indexPath]; 
return cell; 
} 

と使用だけcellForRowデータソースメソッドの後

- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 


     if ([cell isKindOfClass:[CartTableViewCell class]]) 
    { 
     CartTableViewCell *cell1 = (CartTableViewCell*)cell; 
     MyCartModel* data = [_myCartProductArray objectAtIndex:indexPath.row]; 
     [cell1 setUpData:data]; 
    } 

} 

と呼ばれ、UITableViewCellのカスタムクラスにUILabel上のデータを設定します。このデリゲートのようなものを使用します。

関連する問題