Ответ 1
Изменение точки привязки влияет на позиционирование вашего зрения. Вам нужно будет изменить позицию представления, если вы измените точку привязки и хотите сохранить свое представление там, где оно есть. Используйте что-то вроде этого (взято отсюда: Layer Position прыгает в начале (Core) Animation), чтобы установить опорную точку и компенсировать изменения положения:
-(void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view
{
CGPoint newPoint = CGPointMake(view.bounds.size.width * anchorPoint.x, view.bounds.size.height * anchorPoint.y);
CGPoint oldPoint = CGPointMake(view.bounds.size.width * view.layer.anchorPoint.x, view.bounds.size.height * view.layer.anchorPoint.y);
newPoint = CGPointApplyAffineTransform(newPoint, view.transform);
oldPoint = CGPointApplyAffineTransform(oldPoint, view.transform);
CGPoint position = view.layer.position;
position.x -= oldPoint.x;
position.x += newPoint.x;
position.y -= oldPoint.y;
position.y += newPoint.y;
view.layer.position = position;
view.layer.anchorPoint = anchorPoint;
}
См. также более подробную информацию: Изменение привязки моего объекта CALayer перемещает представление