2017-04-13 76 views

回答

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

这是UITableView的委托方法。返回的对象是UITableViewCell类型的。这些是您在表格行中看到的对象。 NSIndexPath有两个这个Section和Row。

如果在视图控制器中实现UITableViewDataSource协议,则会调用它。更简单的方法是添加一个UITableViewController类。我强烈建议这样做,因为它为您编写了一些代码,以便轻松实现可以描述表格的函数。无论如何,如果你选择自己实现这个协议,你需要创建一个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数据。