iOS - 从 cell.textLabel.frame 获取 CGRect

发布于 2025-01-05 05:02:09 字数 208 浏览 1 评论 0原文

我尝试 LogCGRect(cell.textLabel.frame); 但这只是给了我 (0, 0) 0 x 0

如何找出 textLabel 的 CGRect一个细胞?我想知道的原因是因为我正在子类化 UITableViewCell 并且我想保留原始 textLabel 的尺寸并减去 30 像素的宽度。

I tried to LogCGRect(cell.textLabel.frame); but that just gives me (0, 0) 0 x 0

How can I find out the CGRect of a textLabel in a cell? Why I'm wondering is because I'm subclassing UITableViewCell and I want to keep the dimensions from the original textLabel and subtract the width with 30 pixels.

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

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

发布评论

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

评论(2

橪书 2025-01-12 05:02:09

我找到了答案。在 -cellForRowAtIndexPath: 处,单元格的子视图尚未布局。使用委托方法:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

    LogCGRect(cell.textLabel.frame);
}

I found the answer. At -cellForRowAtIndexPath: the cell's subviews haven't been laid out yet. Use the delegate method:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

    LogCGRect(cell.textLabel.frame);
}
四叶草在未来唯美盛开 2025-01-12 05:02:09

UITableViewCell 的 textLabel 默认有 CGRectZero 框架。您必须将 textLabel.text 设置为某个值才能更改框架。

UITableViewCell's textLabel has CGRectZero frame by default. You have to set textLabel.text to some value for frame to change.

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