我正在尝试复制 Music.app 的音量拇指反射。我创建了一个演示项目 来微调数学。
起初,我在控制器中为视图设置动画以保持简单。在我完成之后,我决定创建一个自定义ReflectedKnobView
,以便我可以在其他项目中使用它。我将相关代码从控制器复制到视图。
即使我完全复制了控制器中的代码(进行了相关修改),但是当我运行应用程序时,视图的行为与控制器不同。
在 中ReflectedKnobView
,CGAffineTransformRotate()
视图以不可预知的方式倾斜和变形。
我复制的代码:
- (void)updateValues
{
CMRotationRate data = self.mManager.gyroData.rotationRate;
self.xLabel.text = [NSString stringWithFormat:@"%f", RadiansToDegrees(data.x)];
self.yLabel.text = [NSString stringWithFormat:@"%f", RadiansToDegrees(data.y)];
self.zLabel.text = [NSString stringWithFormat:@"%f",RadiansToDegrees(data.z)];
[UIView animateWithDuration:1/20 animations:^{
self.level3Left.transform = CGAffineTransformRotate(self.level3Left.transform, ((data.y / 240) + (data.x / 200)));
self.level3Right.transform = CGAffineTransformRotate(self.level3Right.transform, ((-1 * data.y) / 240) + (data.x / 200));
}];
}
是s level3<Right/Left>
。UIImageView
我怀疑它的CGAffineTransformRotate()
行为不同,因为我在一种情况下在视图中调用它,在另一种情况下在控制器中调用它。
如果您不明白我在这里所说的话,请下载演示项目并在设备上运行它。