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

发布于 2024-12-12 03:48:54 字数 761 浏览 0 评论 0原文

我是 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;
    }

}

i am a new programmer of Iphone App..... i wants three cells in table (which are different height)

i write the code for this task..and output is satisfactory...... but i don't know.. this is right method or not.....

thanks in advance..... :)

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;
    }

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

裸钻 2024-12-19 03:48:54

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

No, this isn't right. Use indexPath.row instead of your counter variable. This will be the row number your delegate is being asked about. When scrolling upwards, for example, you may not get the expected results with your current code.

╰ゝ天使的微笑 2024-12-19 03:48:54

不要使用

static int counter=1;

从 NSIndexPath 获取

int row = indexPath.row;

Don't use

static int counter=1;

Get the row from NSIndexPath.

int row = indexPath.row;
埋情葬爱 2024-12-19 03:48:54

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

your static int counter is not a global variable, so you code can't work.
It would work, if you make an ivar from it but that is not the correct way to solve that.
The indexPath variable provided by the heightForRowAtIndexPath: delegate method holds the index of the actual item. Just call indexPath.row (this is the actual counter) in your code instead of your counter.

可遇━不可求 2024-12-19 03:48:54

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

From your code I guess you have a rotation of 3 rows heights, so the best way is to use int row = indexPath.row % 3; this will give you a cycling 0,1,2 as value to test instead of your counter

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文