gpt4 book ai didi

objective-c - 很难找到旋转变换的正确 anchor

转载 作者:行者123 更新时间:2023-12-03 04:53:05 24 4
gpt4 key购买 nike

我正在为按钮的位置设置动画,将其绕一圈旋转。这将创建一个 UISwitch -类似的行为,只不过它更加奇特。按钮会旋转,但最终会偏离所需位置约 0.25 弧度。我正在尝试找出将 anchor 放置在哪里,以使按钮绕其原点完美旋转。

下面是我用来使按钮以距原始位置 120 像素半径的“轨道”运行的代码。

float offsetX=120;
float offsetY=0;

enableDisableButton.layer.anchorPoint =
CGPointMake(offsetX/enableDisableButton.frame.size.width,
offsetY/enableDisableButton.frame.size.height);

我使用以下方法进行计算。为 degrees 传递 90 的参数,我希望看到按钮从 180° 位置开始并移动到 90°,距离原点仍为 120 像素

-(CGAffineTransform)calculateLabelPositionFromFixedPointWithOffsetClockwiseInDegrees:(float)degrees
{

float rotation = degrees*(2*M_PI/360);
CGAffineTransform transform24 = CGAffineTransformMakeRotation(rotation);
NSLog(@"rotation: %f", rotation);
return transform24;
}

这个 0.25 弧度左右的小偏移意味着我需要目视确认每个按钮的位置,并且无法轻松地以编程方式调整其位置。任何帮助确定旋转按钮的正确方法的帮助都是值得赞赏的。

我尝试了其他方法来旋转对象。例如,我有一个箭头 <--------x ,我想围绕 x 旋转这个箭头一圈。此操作的正确 anchor 位置是什么?是[1, 0.5]吗?

进行这种旋转的一种更简单的方法是将对象放置在对称 UIView 内,将其置于所需旋转点的中心并指定旋转变换。这可行,但要求 View 是原来的两倍:

Y----x----Y < 这将围绕中心点 X 旋转 Y,而不进行任何 anchor 调整。这是在模拟仪表等内旋转箭头的非常有用的方法。

最佳答案

“进行这种旋转的一种更简单的方法是将对象放在对称的 UIView 中,将其置于所需的旋转点中心并分配旋转变换。”这样就可以了。

关于objective-c - 很难找到旋转变换的正确 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8083894/

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