A Fancy Animation with StackView

作者: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社区庆祝。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,745评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,645评论 25 709
  • 【我不想谋生,我想生活。——王尔德】 写在文前:明白自己书读的太少而想的太多,以下文字只是想要一吐为快。 早就买了...
    苒苒冄阅读 5,000评论 0 1
  • 今天是2017年的3月11号,我29岁,朴槿惠总统被弹劾的第二天,我和他一起去了全州找建熙哥。即使阳光很好,即使他...
    森林菲阅读 1,238评论 0 0
  • 文 / 路人锋 你,在一个无名的夏夜远离从那颗还未习惯孤单的心里那夜像一个明媚妖艳的女子婀娜多姿,她轻蔑地嘲笑我 ...
    路人锋阅读 3,134评论 24 13

友情链接更多精彩内容