別のスタック オーバーフローの質問 ( iPhone の「スライドしてロックを解除する」アニメーション) のコードを使用して、「スライドしてロックを解除する」スタイルのテキスト パルスを作成することができました。現時点では、マスクは左から右に移動します。左から右にパルスするのではなく、右から左にパルスするように逆にしたいと思います。
私はコードをいじって、それを元に戻す方法を見つけようとしましたが、何も正しく動作しませんでした! 私がうまくいくと思っていたことはすべてうまくいきませんでした。
どんな助けでも大歓迎です。
self.view.layer.backgroundColor = [[UIColor blackColor] CGColor];
CGFloat textWidth = 320;
CGFloat textHeight = 76;
CALayer *textLayer = [CALayer layer];
textLayer.contents = (id)[self.MYSLIDEIMAGE.image CGImage];
textLayer.frame = CGRectMake(-69.0f, 350.0f, textWidth, textHeight);
CALayer *maskLayer = [CALayer layer];
// Mask image ends with 0.15 opacity on both sides. Set the background color of the layer
// to the same value so the layer can extend the mask image.
maskLayer.backgroundColor = [[UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.1f] CGColor];
maskLayer.contents = (id)[[UIImage imageNamed:@"Mask.png"] CGImage];
// Center the mask image on twice the width of the text layer, so it starts to the left
// of the text layer and moves to its right when we translate it by width.
maskLayer.contentsGravity = kCAGravityCenter;
maskLayer.frame = CGRectMake(-textWidth +50, 0.0f, textWidth * 2, textHeight);
// Animate the mask layer's horizontal position
CABasicAnimation *maskAnim = [CABasicAnimation animationWithKeyPath:@"position.x"];
maskAnim.byValue = [NSNumber numberWithFloat:textWidth -50];
maskAnim.repeatCount = HUGE_VALF;
maskAnim.duration = 2.8f;
[maskLayer addAnimation:maskAnim forKey:@"slideAnim"];
textLayer.mask = maskLayer;
[self.view.layer addSublayer:textLayer];