使用 IB 调整大小构建自定义 UITableViewCell?

发布于 2024-10-22 02:17:04 字数 559 浏览 6 评论 0原文

我已确保单元格的自动调整大小蒙版允许灵活的宽度,但当设备旋转时,单元格的大小不会调整。

我还验证了表格视图的大小已调整,问题直接出在单元格上。

这是我用来创建单元格的代码:

if (cell == nil) {
        // Load the top-level objects from the custom cell XIB.
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MetaTableViewCell" owner:self options:nil];
        // Grab a pointer to the first object (presumably the custom cell, as that's all the XIB should contain).
        cell = [topLevelObjects objectAtIndex:0];
    }

有人能想到可能出了什么问题吗?

使用 IB 创建的单元是否从未调整过大小?

I have ensured the autosizing mask of my cell allows flexible width, but when the device is rotated the Cells are not resized.

I have also verified the tableview is resized, the problem is directly with the cells.

This is the code I am using to create the cells:

if (cell == nil) {
        // Load the top-level objects from the custom cell XIB.
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MetaTableViewCell" owner:self options:nil];
        // Grab a pointer to the first object (presumably the custom cell, as that's all the XIB should contain).
        cell = [topLevelObjects objectAtIndex:0];
    }

Can someone think of what might be wrong?

Are cells created using IB not resized ever?

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

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

发布评论

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

评论(2

笑忘罢 2024-10-29 02:17:04

如果单元格的高度未调整大小,我建议您在旋转后修改 UITableView 委托方法。

-

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if(condition)// has rotation taken place
    // new height
    else
    // old height
    }

请确保在旋转发生时调用[tableView reloadData];

If its the height of the cell that is not resized I suggest you to modify the UITableView delegate method after rotation.

-

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if(condition)// has rotation taken place
    // new height
    else
    // old height
    }

Pls make sure that you call [tableView reloadData]; when rotation has taken place.

当爱已成负担 2024-10-29 02:17:04

如果我理解你的问题,你想改变 UITableViewCells 的高度,对吧?尝试在 TableView 的委托中添加这一行:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return *height*;
}

我遇到了同样的问题。如果您在 IB 中设置大小,您可以在其中放置更多内容,但加载时它仍然会询问您的委托的高度。如果您的委托没有实现此方法,它将仅采用默认高度。

If i understand your question, you want to change the height of UITableViewCells, right? Try adding this line in your TableView's delegate:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return *height*;
}

I was having the same problem. If you set the size in IB, you can put more stuff in there, but it will still ask your delegate for the height when loading. If your delegate does not implement this method, it will simply take the default height.

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