Переименование & ldquo; java & rdquo; каталог & ldquo; kotlin & rdquo; в Android Studio

Раздел Layer Geometry and Transforms в Руководстве по программированию основной анимации объясняет взаимосвязь между позицией CALayer и свойствами anchorPoint. В принципе, положение слоя определяется с точки зрения местоположения anchorPoint слоя. По умолчанию, anchorPoint слоя (0.5, 0.5), который лежит в центре слоя. Когда вы устанавливаете положение слоя, вы затем устанавливаете расположение центра слоя в его системе координат суперслоя.

Поскольку позиция относительно привязанного уровня слоя, изменение этого anchorPoint во время поддержание той же позиции перемещает слой. Чтобы предотвратить это движение, вам нужно будет отрегулировать позицию слоя для учета нового anchorPoint. Один из способов, которым я это сделал, - захватить границы слоя, умножить ширину и высоту границ на старые и новые нормальные значения anchorPoint, различить два якорных точки и применить эту разницу к положению слоя.

Возможно, вы даже сможете учесть ротацию таким образом, используя CGPointApplyAffineTransform() с CGAffineTransform вашего UIView.

30
задан Zoe 30 April 2019 в 12:57
поделиться