2

iOS にシングル ビュー アプリケーションがあります。view.layer次に、を使用して のサブレイヤーにアニメーションを追加しましたCAKeyframeAnimation。デバイスが直立している限り、完全に機能します。デバイスを回転させるとすぐに、アニメーションがデバイスと一緒に「回転」します。つまり、デバイスを回転させると、左から右への移動が上から下への移動になります。

UIViewControllerビューは正常に回転しますが、サブCALayer変換は回転しません。

それにどう対処する必要があるのか​​ 理解できません。この投稿が示唆するように、私は自分の回転でデバイスの回転に対抗することができました。何かが足りないような気がします。これを有効にするために何かする必要がありますか、それとも回転を手動で処理する必要がありますか?

4

1 に答える 1

0

投稿が示唆したことを行い、デバイスの向きを回転させて対抗しました。他の人の利益のために、コードは次のとおりです。

- (void)setupDeviceCounterRotation
{
  CATransform3D deviceCounterRotation;

  if(self.interfaceOrientation == UIDeviceOrientationPortrait) {
    deviceCounterRotation = CATransform3DIdentity;
  }
  else if(self.interfaceOrientation == UIDeviceOrientationPortraitUpsideDown) {
    deviceCounterRotation = CATransform3DMakeRotation(M_PI, 0.0f, 0.0f, 1.0f);
  }
  else if(self.interfaceOrientation == UIDeviceOrientationLandscapeLeft) {
    deviceCounterRotation = CATransform3DMakeRotation(M_PI/2, 0.0f, 0.0f, 1.0f);
  }
  else if(self.interfaceOrientation == UIDeviceOrientationLandscapeRight) {
    deviceCounterRotation = CATransform3DMakeRotation(-M_PI/2, 0.0f, 0.0f, 1.0f);
  }

  self.view.layer.sublayerTransform = deviceCounterRotation;
}
于 2012-10-19T23:34:09.720 に答える