移动按钮从右到左动画iOS - swift

Posted

技术标签:

【中文标题】移动按钮从右到左动画iOS - swift【英文标题】:Move button Right to left animation iOS - swift 【发布时间】:2015-11-05 13:09:59 【问题描述】:

我正在视图控制器中创建一个带有一些按钮的应用程序。我想添加一个动画,就像所有按钮都从右向左移动一样。但是我所有的按钮都从左向右移动。这是我的代码。

 override func viewWillAppear(animated: Bool) 
        super.viewWillAppear(animated)
        b1_center_alignment.constant -= self.view.bounds.width;
        b2_center_alignment.constant -= self.view.bounds.width;
        b3_center_alignment.constant -= self.view.bounds.width;
        b4_center_alignment.constant -= self.view.bounds.width;
        b5_center_alignment.constant -= self.view.bounds.width;


override func viewDidAppear(animated: Bool) 
        super.viewDidAppear(animated);
        UIView.animateWithDuration(0.5, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: 
            self.b5_center_alignment.constant += self.view.bounds.width
            self.view.layoutIfNeeded()
            , completion: nil)

        UIView.animateWithDuration(0.5, delay: 0.3, options: UIViewAnimationOptions.CurveEaseOut, animations: 
            self.b4_center_alignment.constant += self.view.bounds.width
            self.view.layoutIfNeeded()
            , completion: nil)


        UIView.animateWithDuration(0.5, delay: 0.6, options: UIViewAnimationOptions.CurveEaseOut, animations: 
            self.b3_center_alignment.constant += self.view.bounds.width
            self.view.layoutIfNeeded()
            , completion: nil)
        UIView.animateWithDuration(0.5, delay: 0.9, options: UIViewAnimationOptions.CurveEaseOut, animations: 
            self.b2_center_alignment.constant += self.view.bounds.width
            self.view.layoutIfNeeded()
            , completion: nil)

        UIView.animateWithDuration(0.5, delay: 1.2, options: UIViewAnimationOptions.CurveEaseOut, animations: 
            self.b1_center_alignment.constant += self.view.bounds.width
            self.view.layoutIfNeeded()
            , completion: nil);

    

我对 ios 开发非常陌生。请有人帮我解决这个问题。这里b1_center_alignment, b2_center_alignment 是来自storyboard 的中心水平约束。

【问题讨论】:

你试过-=而不是+=吗? 你的意思是 b1_center_alignment.constant += self.view.bounds.width;在视图中会出现,self.b1_center_alignment.constant -= self.view.bounds.width 像这样在视图中出现对吗? 是的。这行得通吗? 我也认为同一只蚂蚁尝试这样做,响应是按钮从右向左移动但未完成。问题最初是按钮处于其原始位置并且动画移动到按钮的顶部。 【参考方案1】:

当你这样做时

b1_center_alignment.constant -= self.view.bounds.width;

您将按钮隐藏在屏幕左侧,然后使用

self.b5_center_alignment.constant += self.view.bounds.width

你把它移回原来的位置

你需要反转信号

b1_center_alignment.constant += self.view.bounds.width;

和 self.b5_center_alignment.constant -= self.view.bounds.width

【讨论】:

我也认为同一只蚂蚁尝试像您的回答一样,响应是按钮从右向左移动但未完成。问题最初是按钮处于其原始位置并且动画移动到按钮的顶部。 你明白我的意思了吗?如果没有请告诉我我会添加截图 对不起,我没听懂 我发现了问题,但不知道如何解决。我的问题是我为按钮设置了前导空间,这是问题所在。一旦我删除领先的空间宽度正在改变。有什么办法解决这个问题吗? 谢谢,我解决了我的问题。我做的另一项更改是删除前导空格并添加尾随空格。一切都很完美。

以上是关于移动按钮从右到左动画iOS - swift的主要内容,如果未能解决你的问题,请参考以下文章

如何制作点击按钮时显示的加载动画?它应该占据全屏并且应该从右到左并消失

如何使用 CGAffineTransform Scale 从右到左添加动画和放大动画

UIPageViewController:从右到左的语言反转 .scroll 动画方向

Segue 与 Push 动画从右到左

Android从右到左textview滑动动画

UICollectionView:1 行水平滚动(从右到左),带有来自右侧的新单元格的自定义动画