2
Я использую этот код для создания слайда, чтобы разблокировать, как анимацию, но я не могу сделать его анимированным с right to left
.Нужна помощь относительно слайда, чтобы разблокировать, как анимация
Как я могу запустить его справа и анимировать слева?
-(void)slideToCancel {
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.50f] CGColor];
maskLayer.contents = (id)[[UIImage imageNamed:@"slidetocancel.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(_slideToCancelLbl.frame.size.width * -1, 0.0f, _slideToCancelLbl.frame.size.width * 2, _slideToCancelLbl.frame.size.height);
// Animate the mask layer's horizontal position
CABasicAnimation *maskAnim = [CABasicAnimation animationWithKeyPath:@"position.x"];
maskAnim.byValue = [NSNumber numberWithFloat:_slideToCancelLbl.frame.size.width];
maskAnim.repeatCount = 1e100f;
maskAnim.duration = 1.5f;
[maskLayer addAnimation:maskAnim forKey:@"slideAnim"];
_slideToCancelLbl.layer.mask = maskLayer;
}
Я пробовал отрицательное значение, но он дает нечетное поведение анимации. Я считаю, что гравитация играет определенную роль, но как заставить ее оживить справа налево. –
Я не пробовал использовать contentGravity раньше. Как насчет избавления от byValue и настройки fromValue и toValue? –
Просьба обновить свой последний комментарий в качестве ответа, чтобы я мог искоренить его и отметить как правильный ответ. –