5

パン ジェスチャを使用して、CALayer で画像を移動します。私が経験した問題は、画像が少し遅れて動いているように見え、指に「くっついた」ように見えないことです。

レイヤーを移動する方法の実際のスニペットは次のとおりです(facePicはCALayerです):

CGPoint translation =[touche locationInView:self.view];
self.facePic.frame =
CGRectMake(translation.x - self.facePic.frame.size.width/2,
           translation.y - self.facePic.frame.size.height/2,
           self.facePic.frame.size.width,
           self.facePic.frame.size.height);
4

1 に答える 1

11

レイヤーの暗黙のアニメーションの結果が表示されると思います。その場合、このアニメーションを無効にする2つのオプションがあります。

  1. トランザクションを使用する
  2. レイヤーアクションの設定

トランザクションを使用するには、コードをCATransactionでラップします

[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
 . . .
[CATransaction commit];

一部のレイヤーアクションを無効にするには、これをレイヤーinitに追加します。たとえば、位置アニメーションは次のようになります。

aLayer.actions = @{@"position":[NSNull null]}; // FIXED property name
于 2013-02-17T00:06:38.540 に答える