gpt4 book ai didi

ios - Objective-C 转换为 X 和 Y

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:14 25 4
gpt4 key购买 nike

我一直在研究 CGAffineTransforms 并且想知道是否有一种方法可以让您查看并放大 x,y 坐标。我使用函数缩小了缩放部分:

       CGAffineTransformMakeScale(4.00 ,4.00);

但是我不确定如何将缩放比例与可能的 x,y 坐标联系起来。有没有人做过这样的事情?我可能在使用这些功能时不正确吗?

       -(void)buttonSelected:(id)sender
{
UIButton *b = sender;
CGPoint location = b.frame.origin;

[UIView animateWithDuration:1.3f delay:0.0f options:UIViewAnimationCurveEaseIn animations:^{
CGAffineTransform totalTransform =
CGAffineTransformMakeTranslation(-location.x , -location.y );
totalTransform = CGAffineTransformScale(totalTransform, 4.0f, 4.0f);
totalTransform = CGAffineTransformTranslate(totalTransform, location.x , location.y );
[self.view setTransform:totalTransform];
}completion:^(BOOL finished) {
}];

}

最佳答案

您可以构造一个执行以下三个步骤的转换:

  • 将要缩放的点移动到图层的中心;
  • 规模;
  • 将物体向后移动,使原来的中心回到中心。

所以,例如

// to use a point that is (109, 63) from the centre as the point to scale around
CGAffineTransform totalTransform =
CGAffineTransformMakeTranslation(-109.0f, -63.0f);
totalTransform = CGAffineTransformScale(totalTransform, 4.0f, 4.0f);
totalTransform = CGAffineTransformTranslate(totalTransform, 109.0f, 63.0f);

或者,可以更简单地调整 view.layeranchorPoint .第二个想法的陷阱是,当您第一次调整 anchor 时,您会立即得到一个变换,因为所有其他定位都是以中心为单位的。

关于ios - Objective-C 转换为 X 和 Y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14570584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com