当前位置:  开发笔记 > IOS > 正文

如何获得UITableViewCell的rect大小?

如何解决《如何获得UITableViewCell的rect大小?》经验,为你挑选了1个好方法。

如何获得UITableViewCell的rect大小?

我试图在每次用户点击一个单元格时显示一个弹出悬停,并希望弹出悬停以每个单元格为中心显示:

[replyPopover presentPopoverFromRect:CGRectMake(77, 25, 408, 68) 
                              inView:self.view 
            permittedArrowDirections:UIPopoverArrowDirectionDown 
                            animated:YES];

h4xxr.. 38

最近不得不这样做.你需要使用[tableView rectForRowAtIndexPath].

但是,有一件事可以让你感到惊讶的是,当您滚动浏览UITableView时,您需要考虑偏移量(即,将其y位置报告为3000像素的东西当然意味着从UITableView顶部开始3000 - 不是屏幕上有3000像素).

除此之外,它自然会出现在单元格的顶部,因此您需要将单元格高度的一半添加到计算中.

这段代码对我有用:

CGRect frame = [tableView rectForRowAtIndexPath:indexPath];
CGPoint yOffset = self.tableView.contentOffset;
[self.popoverController presentPopoverFromRect:CGRectMake(frame.origin.x, (frame.origin.y + 45 - yOffset.y), frame.size.width, frame.size.height)

在我的情况下,每个单元格高90像素,因此'+45'位.替换自己细胞高度的一半.



1> h4xxr..:

最近不得不这样做.你需要使用[tableView rectForRowAtIndexPath].

但是,有一件事可以让你感到惊讶的是,当您滚动浏览UITableView时,您需要考虑偏移量(即,将其y位置报告为3000像素的东西当然意味着从UITableView顶部开始3000 - 不是屏幕上有3000像素).

除此之外,它自然会出现在单元格的顶部,因此您需要将单元格高度的一半添加到计算中.

这段代码对我有用:

CGRect frame = [tableView rectForRowAtIndexPath:indexPath];
CGPoint yOffset = self.tableView.contentOffset;
[self.popoverController presentPopoverFromRect:CGRectMake(frame.origin.x, (frame.origin.y + 45 - yOffset.y), frame.size.width, frame.size.height)

在我的情况下,每个单元格高90像素,因此'+45'位.替换自己细胞高度的一半.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有