A Fancy Animation with StackView

作者: Joy___ | 来源:发表于2016-07-27 23:21 被阅读257次

作者:Martin_Joy,原文链接,原文日期:2016年7月24日

上周,我作为嘉宾参加了iOSDevCampDC,在那,很高兴听到了@atomicbirdstackViews的精彩的演讲。我了解StackViews的基本原理,但是我不知道,通过它们可以如此简单地制作出令人印象深刻的动画。

这里是一个@atomicbird演示过的很酷的动画例子,我在这篇博客中模仿了这种效果。在这个有趣的App中有一个用户设置的按钮,用户可以通过它来选择一个表情符号来表示他们当前的状态。

The Setup

只需要在你的View中基于约束添加一个StackView,然后添加所需要的按钮去制作这个可爱的表情菜单,就可以完成基础设置。

stackviews是非常简单而且容易上手的,所以即使你还没有使用过它们,这部分也将会很有趣。

下一步是对除了设置按钮之外的所有表情符号按钮进行操作,对这些需要动画的按钮创建一个Outlet Collection。


正如你所看到的那样,创建一个Outlet Collection与创建一个Outlet的方式是一样的,只不过Outlet Collection是子控件组成的数组。所以按住Control键,并拖动鼠标去创建一个新的Outlet Collection即可。

动画

我们将通过控制表情按钮的hidden属性来达到动画的效果。首先,我们需要确认这些表情按钮默认是被隐藏的。我们可以遍历所有的表情按钮,并设置他们去隐藏。

@IBOutlet var emojiButtons: [UIButton]! {
didSet {
    emojiButtons.forEach {
        $0.isHidden = true
    }
}
}

下面将进行有难度的操作,你准备好了吗?

在这里,当设置按钮被点击的时候,我们将执行一个动画去遍历所有的表情按钮,并且切换他们的hidden状态。

@IBAction func onSettingsButtonTap(_ sender: AnyObject) {
    UIView.animate(withDuration: 0.3) {
        self.emojiButtons.forEach {
            $0.isHidden = !$0.isHidden
        }
    }
}

总结

这些小技巧,通过如此少的代码量就使stackViews超乎想象的强大。我因此受到了很大的鼓舞,相信可以通过StackViews做更有创意的东西。非常感谢 @atomicbird !

你可以在这里看到我的示例代码,同时可以与使用autolayout的情况做一个比较。

有兴趣想要学习更多吗?那就加入我吧,9月1日和2日在纽约一起为swift社区庆祝。

相关文章

  • A Fancy Animation with StackView

    作者:Martin_Joy,原文链接,原文日期:2016年7月24日 上周,我作为嘉宾参加了iOSDevCampD...

  • StackView

    Android中StackView的使用Android StackView用法

  • StackView使用(堆叠列表)

    目录 StackView StackView也是AdapterViewAnimator的子类,它也用于显示Adap...

  • StackView卡片堆叠

    一、认识StackView StackView也是AdapterView Animator的子类,它也用于显示Ad...

  • UIStackView

    UIStackView: 只需要对StackView布局设置,StackView里面的东西自动布局管理 好的文章

  • StackView

    我的博客, 各位看官有时间赏光 UIStackView UIStackView介绍 随着autolayout的推广...

  • StackView

    StackView 心情不是很好,也抬不起太大的兴趣来写代码。随便拿了个之前写的代码做个小小的讲解。 Reason...

  • StackView

    StackView学习 自适应、适配、布局这几个关键词一直伴随着iOS开发,从以前的单一尺寸屏幕,到现在的多尺寸屏...

  • StackView

    stackView也是AdapterViewAnimator的子类,它显示Adapter提供的一系列View,St...

  • UIStackView属性图

    看RW的StackView教程笔记。

网友评论

本文标题:A Fancy Animation with StackView

本文链接:https://www.haomeiwen.com/subject/zjxajttx.html