我的目标是让UITableViewCells在接近UITableView的边界并即将被覆盖/显示时淡入/淡出。

我一直在尝试的方法是在滚动事件期间获取UITableViewCell的坐标。问题在于每个单元格似乎都为0,0。我曾尝试将坐标转换为父表和视图,但它们仍为0,0。

因此,通常来说,如果有人知道获取坐标的方法,或者根据其位置使UITableViewCells淡入淡出的更好方法,我将不胜感激您可能有的任何建议。

谢谢你的时间,
乔尔

最佳答案

第一步是使用

CGRect rectInTableView = [tableView rectForRowAtIndexPath:indexPath];

它将报告tableView中单元格的CGRect。但是,此值不会随着tableView滚动而改变。它是相对于表格第一行(而不是第一可见行)的位置。要获取单元格在屏幕上的位置,您必须使用以下命令将其转换为超级视图坐标系

CGRect rect = [tableView convertRect:rectInTableView toView:[tableView superview]];


所以下面这行就可以了

CGRect rect = [tableView convertRect:[tableView rectForRowAtIndexPath:indexPath] toView:[tableView superview]];


斯威夫特4

// Consider the indexPath at row 1, section 0.
let rectWithinTableView : CGRect = self.tableView.rectForRow(at: IndexPath(row: 1, section: 0))
let rectWithSuperViewCoordinates : CGRect = self.convert(rect: rectWithinTableView, to: self.tableView.superview)

关于iphone - 滚动时确定UITableViewCell的坐标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/687793/

10-12 07:26