日常工作中经常需要对坐标系作转换,那么我们应该对这2个方法不会感到陌生。
首先我们可以看一下这2个方法的源码。可以看到都调用了同一个offsetRectBetweenParentAndChild方法。
然后我们看一下offsetRectBetweenParentAndChild方法。5916行是一个while循环,主要起到一个从子View一直回溯到this的作用。根据源码可以发现,方法一其实就是提供一个位于descendant坐标系的rect,然后转移到this坐标系。方法二就是提供一个位于this坐标系的rect,然后转移到descendant坐标系。