gpt4 book ai didi

iphone - 导航栏中的 iOS UIButton 在执行变换动画后消失

转载 作者:行者123 更新时间:2023-11-28 12:48:21 26 4
gpt4 key购买 nike

我正在尝试通过在单击时旋转它来制作从“+”按钮到“X”按钮的动画转换。

enter image description here

当我在 UIView 上使用标准按钮时,一切都很好。我正在使用以下代码:

UIView.animateWithDuration(2.0, delay: 0.0, options: .CurveEaseOut, animations: {
let transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4))
self.navigationPlusButton.transform = transform
}, completion: nil)

当我尝试使用导航栏中的按钮实现相同功能时出现问题。

enter image description here

看起来按钮高度在旋转之前已调整为 0,而且我不知道如何修复导航按钮的大小,因为没有约束定义。注意 Storyboard

enter image description here

和约束

enter image description here

注意:第二种方法使用 CABasicAnimation 很好地旋转了按钮,但它在动画结束后立即将其返回到初始状态。我想保持“X”直到我再次点击。

    let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
rotateAnimation.fromValue = 0.0
rotateAnimation.toValue = CGFloat(M_PI_4)
rotateAnimation.duration = 2.0
self.navigationPlusButton.layer.addAnimation(rotateAnimation, forKey: nil)

enter image description here

为什么它在导航栏外如此容易工作,而在导航栏上却如此困难?我找不到解决方案。请帮忙

最佳答案

尝试在您的代码中添加以下几行,它会解决您的问题。

rotateAnimation.fillMode = kCAFillModeForwards
rotateAnimation.removedOnCompletion = false

关于iphone - 导航栏中的 iOS UIButton 在执行变换动画后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37349893/

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