当我尝试编辑代码块外的文本标签时,swift animateWithDuration中断

时间:2015-09-08 21:02:39

标签: ios swift uiviewanimation

在我的应用程序中,我有两个排序按钮,看起来像一个自定义分段控件。

VC选择了 Button1 。 如果您按 Button2 ,UIView将从 Button1 动画到 Button2 - 这样可以显示选择了哪个按钮

我的代码如下所示:

@IBAction func BtnOneDidTouch(sender: AnyObject) {
        myLabel.text = "Button 1"
        UIView.animateWithDuration(0.7,
            delay: 0,
            usingSpringWithDamping: 0.7,
            initialSpringVelocity: 0.5,
            options: nil,
            animations: {
                self.underLine.center = CGPointMake(self.btnOne.center.x, self.btnOne.center.y + 16)
            }, completion: nil
        )
    }


    @IBAction func BtnTwoDidTouch(sender: AnyObject) {
        myLabel.text = "Button 2"
        UIView.animateWithDuration(0.7,
            delay: 0,
            usingSpringWithDamping: 0.7,
            initialSpringVelocity: 0.5,
            options: nil,
            animations: {
                self.underLine.center = CGPointMake(self.btnTwo.center.x, self.btnTwo.center.y + 16)
            }, completion: nil
        )
    }

underLine 是正在设置动画的视图。

如果我发表评论

myLabel.text =“按钮1”

和   myLabel.text =“按钮2”

从它将起作用的功能。 但如果我离开它们,它就不起作用。

它失败了: 如果单击Btn2,视图将滑动,然后再次跳回,只会更改文本标签。

我想要的是让视图滑动并保持并更改标签。

1 个答案:

答案 0 :(得分:1)

问题可能是限制因素。你动画的视图可能有你给它的约束或xcode给它的约束。

设置文本时,会导致布局触发,这会将视图扭曲回初始自动布局位置。

尝试将动画视图translatesAutoresizingMaskIntoConstraints属性设置为NO。

或者,给视图一个前导和顶部约束,CTRL拖动它们以创建IBOutlets,然后在代码中更改约束常量并为约束更改设置动画。

有关如何为约束设置动画的详细信息,请参阅:How do I animate constraint changes?