如何为分组模式自动调整 UITableViewCell 子视图的大小?

发布于 2024-11-04 15:23:43 字数 742 浏览 0 评论 0原文

我对 UITableViewCell 进行了子类化以添加额外的标签和一些颜色选项。

我将标签添加为 [the cell].contentView 的子视图。当您将 UITableView 设置为“分组”模式时,它会从父视图的两侧缩进。默认子视图会移动相应的量,但您添加的子视图不会移动。我将添加视图的 autoResizingMask 设置为每个可能的值,但没有一个正确考虑减小的宽度。

这里是所有组合和结果:

标签子视图的矩形在 initWithReuseIdentifier 中创建,如下所示:

    CGRect specialtyRect = CGRectMake(IMAGE_THUMBNAIL_SIZE + 3, 3, self.contentView.frame.size.width - IMAGE_THUMBNAIL_SIZE - 6, 16);
    self.specialtyLabel = [[UILabel alloc] initWithFrame:specialtyRect];
    [self.contentView addSubview:specialtyLabel];

有谁知道为什么红色子视图的行为是这样的,如何使右端正确缩进以匹配减小的宽度,同时左端保持与 imageView 的正确偏移?谢谢!

我没有使用 UITableViewController,也没有从 XIB 加载这些单元格。

I've subclassed UITableViewCell to add an extra label and some color options.

I added the label as a subview of [the cell].contentView. When you set a UITableView to "grouped" mode, it's indented from the sides of the parent view. The default subviews are moved a corresponding amount, but not ones you add. I set the added view's autoResizingMask to every possible value, but none takes the reduced width into account correctly.

Here are all the combos and results:

The rect for the label subview is created in initWithReuseIdentifier as follows:

    CGRect specialtyRect = CGRectMake(IMAGE_THUMBNAIL_SIZE + 3, 3, self.contentView.frame.size.width - IMAGE_THUMBNAIL_SIZE - 6, 16);
    self.specialtyLabel = [[UILabel alloc] initWithFrame:specialtyRect];
    [self.contentView addSubview:specialtyLabel];

Does anyone know why the red subview is behaving this way, and how to make the right end indent correctly to match the reduced width while the left end remains correctly offset from the imageView? Thanks!

I'm not using a UITableViewController, and I'm not loading these cells from a XIB.

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文