如何在 tableviewcell 按钮上停止动画?

Posted

技术标签:

【中文标题】如何在 tableviewcell 按钮上停止动画?【英文标题】:How to stop animation on tableviewcell button? 【发布时间】:2015-06-17 07:31:29 【问题描述】:

我有一个按钮,当我点击它时会产生动画效果,在该按钮功能内有生成是否播放歌曲的通知。我想要做的是“当我点击它时开始动画,在播放歌曲时停止动画”。我无法停止动画。

这是我的代码

func MPMoviePlayerPlaybackStateDidChange(notification: NSNotification)

    if (User.postPlayer.playbackState == MPMoviePlaybackState.Playing)
     //playing

        println("playinggggg")
        buttonsender?.layer.removeAllAnimations()
    
    else if (User.postPlayer.playbackState == MPMoviePlaybackState.Stopped)
     //stopped
        println("stopped")
    else if (User.postPlayer.playbackState == MPMoviePlaybackState.Paused)
    
        println("paused")
    else if (User.postPlayer.playbackState == MPMoviePlaybackState.Interrupted)
    
        println("interupted")
    else if (User.postPlayer.playbackState == MPMoviePlaybackState.SeekingForward)
    
        println("skip forward")
    else if (User.postPlayer.playbackState == MPMoviePlaybackState.SeekingBackward)
    
        println("skip before")
    




func playPost(sender: UIButton)

    NSNotificationCenter.defaultCenter().addObserver(self,

        selector: "MPMoviePlayerPlaybackStateDidChange:",

        name: MPMoviePlayerPlaybackStateDidChangeNotification,

        object: nil)

    animateButton(sender)

    User.postPlayer.stop()
    var songUrl = sender.layer.valueForKey("songUrl") as? String
    println(songUrl)

    clickedIndex = sender.layer.valueForKey("index") as? Int
    sender.setTitle("II", forState: UIControlState.Normal)
    User.postPlayer.contentURL = NSURL(string: songUrl!)
    User.postPlayer.play()

    buttonsender = sender



func animateButton(sender: UIButton) 
    let defaultDuration = 2.0
    let defaultDamping = 0.20
    let defaultVelocity = 6.0

    sender.transform = CGAffineTransformMakeScale(0.1, 0.1)

    UIView.animateWithDuration(defaultDuration,
        delay: 0,
        usingSpringWithDamping: CGFloat(defaultDamping),
        initialSpringVelocity: CGFloat(defaultVelocity),
        options: UIViewAnimationOptions.AllowUserInteraction,
        animations: 
            sender.transform = CGAffineTransformIdentity
        ,
        completion:  finished in
            self.animateButton(sender)
        
    )

buttonsender 是一个全局变量。 歌曲播放时如何停止动画? 或者,如果有人对加载有更好的解决方案,我会尝试看看它,只是提供任何建议。用目标 c 或 swift 编写无关紧要。

【问题讨论】:

嗨,我们以类似的方式启用和禁用了播放和停止按钮。播放歌曲时,我们禁用播放按钮并启用停止按钮。 我只使用一个按钮 是的,我们可以一键播放/停止。相应的按钮名称播放模式或停止模式我们可以通过编程方式更改。 如何更改按钮名称? 创建一个带有标签的按钮并使其成为条件。 (if and else) if tag = 0 make play mode else Stop mode then inside the conditions give Button Title. 【参考方案1】:

试试这个应该会停止

[CATransaction begin];
[theView.layer removeAllAnimations];
[CATransaction commit];

【讨论】:

以上是关于如何在 tableviewcell 按钮上停止动画?的主要内容,如果未能解决你的问题,请参考以下文章

按钮停止上的按下(波纹)动画

如何修复 TableViewCell 约束冲突?

设置UIButton的标题时如何停止按钮动画[重复]

如何在 SwiftUI 中暂停动画?

在每个 TableViewcell 中播放带有进度条的音频

Swift2:TKSubmitTransitionButton。当用户登录/注册不正确时,如何停止按钮的转换/动画