UIPanel.worldToLocal will be updated by calling the UIPanel.UpdateTransformMatrix.
However, since the frame count is recorded , then calling the method again in the same frame during the count will not be updated .
Therefore , UIPanel.UpdateTransformMatrix is being called in advance , changes to the UIPanel.transform are not reflected in the UIPanel.worldToLocal.
The problem occurred under the following conditions .
1.Place the GameObject with UISprite children to GameObject that has a UIPanel.
2.I will deactivate the GameObject with UISprite. (To the value to True of UIRect.mStarted)
3.I want to activate the GameObject with UISprite. And I move the GameObject with UIPanel use PositionTweener. ( I do at the same time by a script)
4.SpriteMesh generated by UIPanel has shifted .

When GameObject with UISprite is activated, UIPanel.UpdateTransformMatrix() is called in UIRect.OnEnable().
transform.positon of UIPanel moved by PositionTweener is not reflected in UIPanel.worldToLocal.
Therefore, the relative positions of the UIPanel and UIWidget are not displayed correctly.