UITableView单元具有三种不同单元设计的不同标识符

时间:2015-05-14 06:20:01

标签: ios objective-c iphone uitableview

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

    static NSString *CellIdentifier = @"reviews";
    static NSString *CellIdentifier1 = @"recipes";
       static NSString *CellIdentifier2 = @"easy_tips";
    // Configure Cell

    NSString *type = [[myaray objectAtIndex:indexPath.row]objectForKey:@"type"];
    NSLog(@"types====%@",type);

    UITableViewCell *mycell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    if (type == CellIdentifier) {

    firstCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

        NSLog(@"First type %@", type);

    return cell;
    }else if (type == CellIdentifier1){


    SecondTableViewCell *cell1 =  [tableView dequeueReusableCellWithIdentifier:CellIdentifier1 forIndexPath:indexPath];


        return cell1;

    }else if (type == CellIdentifier2){

    ThirdTableViewCell *cell2 =  [tableView dequeueReusableCellWithIdentifier:CellIdentifier2 forIndexPath:indexPath];

        return cell2;
    }

    return mycell;
}

每次第一个细胞时,我只得到一个细胞。

如果是条件声明则不会。 在此先感谢您的回复

3 个答案:

答案 0 :(得分:2)

更改您使用的每个部分from django.core.management.base import BaseCommand class Command(BaseCommand): def add_arguments(self, parser): parser.add_argument('username') parser.add_argument('password') def handle(self, *args, **options): username = options['username'] password = options['password'] return u'Username: %s Password: %s' % (username, password) ,将字符串与==

进行比较

例如: 改变

isEqualToString:

if (type == CellIdentifier)

答案 1 :(得分:0)

尝试使用Switch Condition而不是If,否则使用

答案 2 :(得分:0)

我认为如果你考虑重新思考整个逻辑会更好。

我会做同样的事情

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *type = [[myaray objectAtIndex:indexPath.row]objectForKey:@"type"];
    myCell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"CustomCellid" ];
    if(myCell==nil)
    {
        NSArray *arr= [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];

        if(types isEqualToString:@"reviews")
        {
           myCell=[arr objectAtIndex:0];    
        }
        else if(types isEqualToString:@"recipes")
        {
           myCell=[arr objectAtIndex:1];
        }
        else if(types isEqualToString:@"easy_tips")
        {
           myCell=[arr objectAtIndex:2];
        }

   }


return myCell;

}

创建一个UITableViewCell类'CustomCell'。 在'CustomCell.xib'中创建三个UITableViewCell。每种类型的每个单元格,整个xib将具有标识符“ CustomCellid ” 然后上面的代码将给你想要的结果。试一试