表视图中不同的单元格高度... iphone

时间:2011-10-24 11:33:47

标签: iphone ios

我是Iphone App的新程序员......我想要表格中的三个单元格(高度不同)

我为这个任务编写了代码......输出结果令人满意......但我不知道......这是正确的方法还是不行......

提前感谢..... :)

CGRect frame=CGRectMake(5, 43, 311, 363);

UITableView *table=[[UITableView alloc]initWithFrame:frame style:UITableViewStylePlain];

table.dataSource=self;

table.delegate=self;



-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath: (NSIndexPath *)indexPath
{
    static int counter=1;

    if(counter==1)
    {
        counter=counter +1;
        return 163;

    }
    else if(counter ==2)
    {
        counter=counter +1;
        return 80;

    }
    else 
    {
        counter=counter +1;
        return 60;

    }
    if(counter==4)
    {
        counter=1;
    }

}

4 个答案:

答案 0 :(得分:0)

不要使用

static int counter=1;

从NSIndexPath获取row

int row = indexPath.row;

答案 1 :(得分:0)

不,这不对。使用indexPath.row代替您的counter变量。这将是您的代表被询问的行号。例如,向上滚动时,您可能无法使用当前代码获得预期结果。

答案 2 :(得分:0)

您的static int counter不是全局变量,因此您的代码无效。 它可以工作,如果你从它做一个ivar但这不是解决它的正确方法。 indexPath委托方法提供的heightForRowAtIndexPath:变量保存实际项目的索引。只需在代码中调用indexPath.row(这是实际的计数器),而不是计数器。

答案 3 :(得分:0)

从您的代码中我猜你有3行高度的旋转,所以最好的方法是使用int row = indexPath.row % 3;这将给你一个循环0,1,2作为值来测试而不是你的计数器