如果我们在两个单元格中都包含相同的内容(例如2个标签和1个imageview),谁能帮助我优化下面的代码。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == booksTbl) { // Your conditions here to choose between Books and Movies
    BookCell *cell = [tableView dequeueReusableCellWithIdentifier:@"bookCell"];
    if (!cell)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault     reuseIdentifier:@"bookCell"];
    }
    return cell;
} else {
    MovieCell *cell = [tableView dequeueReusableCellWithIdentifier:@"movieCell"];
    if (!cell)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault     reuseIdentifier:@"movieCell"];
    }
    return cell;
}


我已经尝试通过将UITablewViewCell作为普通对象并根据条件进行尝试,使用适当的单元格对其进行强制转换。但这对我不起作用。

最佳答案

试试这个:

BookCell *cell = (BookCell*)[tableView dequeueReusableCellWithIdentifier:@"bookCell"];


if(cell == nil){
    // NSLog(@"---Cell Allocated Memory---");
    cell = (BookCell *)[[[NSBundle mainBundle] loadNibNamed:@"BookCell" owner:nil options:nil] lastObject];
    [cell setRestorationIdentifier:@"bookCell"];
}

关于ios - 优化多个单元的CellForRow方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34650382/

10-11 04:27