gpt4 book ai didi

iOS 按钮动画,如邮件应用程序

转载 作者:行者123 更新时间:2023-11-29 03:58:40 25 4
gpt4 key购买 nike

在 iOS 邮件应用程序中,如果您转到收件箱并在某个项目上滑动,存档按钮就会从右向左显示(并且 消失时周围的方式)。我试图在我的应用程序中实现这种行为,我的方法是对按钮的 mask 层进行动画处理并将其从右向左移动。我在这里遇到的问题是,一旦动画结束,按钮就会消失。

//Create Mask Layer
CALayer *maskLayer = [CALayer layer];
maskLayer.frame = CGRectMake(cell.deleteButton.frame.size.width,0,cell.deleteButton.frame.size.width,cell.deleteButton.frame.size.height);
maskLayer.backgroundColor = [UIColor whiteColor].CGColor;

cell.deleteButton.layer.mask = maskLayer;

// Setting the animation
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position.x"];
animation.byValue = [NSNumber numberWithFloat:-cell.deleteButton.frame.size.width];
animation.duration = 0.4f;

[cell.deleteButton.layer.mask addAnimation:animation forKey:@"maskAnimation"];

所以我想知道如何让按钮在动画后不消失,或者是否有更好的方法来创建动画。

最佳答案

通过您的实现,您可以在动画完成后用动画移动蒙版,它将保留蒙版的最后位置。这就是按钮被隐藏的原因。

您需要将委托(delegate)设置为您的类(class):

animation.delegate = self;

然后在委托(delegate)方法中实现以下代码:

 -(void) animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
CALayer *maskLayer = [CALayer layer];
maskLayer.frame = CGRectMake(0,0,self.btnLogin.frame.size.width,
self.btnLogin.frame.size.height);
maskLayer.backgroundColor = [UIColor whiteColor].CGColor;

self.btnLogin.layer.mask = maskLayer;
}

希望有帮助。

关于iOS 按钮动画,如邮件应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16164031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com