1. 程式人生 > >offsetDescendantRectToMyCoords和offsetRectIntoDescendantCoords原始碼剖析

offsetDescendantRectToMyCoords和offsetRectIntoDescendantCoords原始碼剖析

日常工作中經常需要對座標系作轉換,那麼我們應該對這2個方法不會感到陌生。

首先我們可以看一下這2個方法的原始碼。可以看到都呼叫了同一個offsetRectBetweenParentAndChild方法。

然後我們看一下offsetRectBetweenParentAndChild方法。5916行是一個while迴圈,主要起到一個從子View一直回溯到this的作用。根據原始碼可以發現,方法一其實就是提供一個位於descendant座標系的rect,然後轉移到this座標系。方法二就是提供一個位於this座標系的rect,然後轉移到descendant座標系。