首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《Motion Design for iOS》(四十四)

让我们从初始状态开始,也就是self.hamburgerOpen是false,并且代码会从上面的else开始执行。在进入实际的代码之前,让我们讨论一个计划来将三条水平线变成红色的X。...接下来,让我们把省下来的两根线从白色动画成红色。幸运的是,Pop让它变得很简单,你只需要设置toValue的颜色为你最终想要的颜色,它会自动插入中间的颜色。...,当我们重复一个用户动作时,我们需要确保我们的动画时流动的,即使用户疯狂地快速点击按钮并打断我们的动画。...从当前值开始动画非常重要,这样一切就是自然的。这就是为什么我在创建并添加新动画前做了一个topColor和bottomColor动画对象是否已经存在的检查。...还有,我对这个颜色过渡没有使用任何弹性,因为我确实不想颜色动画过度迭代红色然后变成一些奇怪的颜色。 这时候当用户点击按钮时我们还没有X,但已经有了这个可爱的视觉了。

31920

创建华丽 UI 的 7条规则 第一部分 (2019年更新)

光线来自天空,从上往上,以至于从下往上的光让人看起来很怪异。 当光从天空而来时,它照亮事物的顶部,并在其下方投射阴影,物体的顶部比较亮,底部比较暗。...未点击的按钮投射出一个稀薄地阴影——在放大的截图中能看的更清楚。 点击后的按钮,底部依然比顶部还要暗一些,并且整个按钮全都更暗。这是因为它与屏幕本身处于同一个平面,光线就不能轻易的照到它了。...常见向内凹陷的视觉元素: 文本输入框 点击后的按钮 滑块 单选按钮(未选中) 复选框 常见向外突出的视觉元素: 按钮 (未点击) 滑块按钮 下拉控件 卡片 选中的单选按钮 弹框 扁平化设如何 扁平化设计是一种视觉风格...从较难的问题开始(在小屏幕上可用的应用程序),然后采用更容易的问题的解决方案(在大屏幕上可用的应用程序)。 这里有另一个类似的结束:黑白优先。...这是一个可靠和简单的方法,可以让应用程序看起来 “干净” 和 “简单”。在过多的地方使用过多的颜色很容易搞砸设计的简单和干净。

1.2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何快速有效的成长为一名Java架构师?我总结出了以下几点。第一:提醒自己还有多少没有学习第二: 不要试图证明自己是正确的第三: “代码有效性”不是停下来的地方,而是开始的地方第四 :写三遍第五:要有

    现在正是需要我们认真考虑的时候,要如何提高我们的编程能力,要怎样努力才可以成为一名Java架构师,下面几点是凭我多年经验总结出来的。大家可以借鉴参考一下。...第三: “代码有效性”不是停下来的地方,而是开始的地方 没错,你的第一次总是能写出满足规范的高质量的代码。但是大多数的开发者在这一处就宣布“完成”,继续下一步。...优秀的程序员知道第一次迭代只是一件粗糙的物件。现在,我们让它变成更好的艺术品。 这个过程的一部分是定义“更好”的蕴义。加快速度有价值吗?更容易做日志?更可复用?更可靠?...也许刚开始时你会觉得有些枯燥,因为它不是文学诗歌,慢慢你会看到别人如何在编程中解决问题,他们将其视为教训与挑战。为了能让自己更好,我们不妨问问自己这样的一些问题: 1、如果是我怎样编写这段程序?...第一,它提供了一种在当前工作中获得的技术和工具的学习机会,这些工具技术会让你适应下一个工具和市场。无论是否为开源项目做贡献,还是为公司项目工作,我们都可以获得技术技能和相信。

    54730

    深入理解JavaScript中的事件传播机制:事件冒泡和事件捕获

    正文内容事件冒泡事件冒泡是指当一个事件被触发时,它会从最内层的元素开始,然后逐级向外传播,直到最外层的元素。在这个过程中,事件会经过每一个元素,直到它到达最外层的元素。...例如,当你单击一个按钮时,事件会从按钮开始向外传播,直到它到达文档的最外层。在这个过程中,事件会经过按钮的父元素、父元素的父元素,以此类推,直到它到达文档的最外层。这个过程可以用以下代码来演示:从按钮开始向外传播,然后经过内部div和外部div,直到它到达文档的最外层。事件捕获事件捕获是指当一个事件被触发时,它会从最外层的元素开始,然后逐级向内传播,直到最内层的元素。...在这个过程中,事件会经过每一个元素,直到它到达最内层的元素。例如,当你单击一个按钮时,事件会从文档的最外层开始向内传播,直到它到达按钮。...事件冒泡从最内层的元素开始向外传播,而事件捕获从最外层的元素开始向内传播。这意味着当你单击一个按钮时,事件冒泡会先触发按钮的事件,然后是它的父元素的事件,以此类推,直到它到达文档的最外层。

    2.1K21

    你可能还不知的 7 个 CSS 好用的属性

    vertical-align取其中一个值:super | top | middle | bottom | baseline (default) | sub | text-top | text-bottom,或从基线开始的长度...4. user-select 每当我们有不想让用户选择的文本,或者相反,如果发生了双击或上下文单击,希望选择所有文本时,user-select属性将非常有用。...从Firefox 21开始, none 表现的像 -moz-none,因此可以使用 -moz-user-select: text 在子元素上重新启用选择。...默认情况下,内联内容包围其边距框; shape-outside提供了一种自定义此包装的方法,可以将文本包装在复杂对象周围而不是简单的框中。它采用与clip-path相同的值。...clip-path定义用户如何查看元素,shape-outside定义其他HTML元素如何查看元素。 ? 资源:MDN。

    1.3K20

    在安全防火墙内通过 WebHook 触发构建

    在这篇文章中,我将向大家展示,如何让运行在防火墙内的 Jenkins 依然可以实时地收到 GitHub 的 WebHook。...因此,无论如何,请不要在你的组织内搞破坏_) 当你在笔记本电脑上运行 Jenkins 并希望从 GitHub 接收 WebHook 时,这也是一样的。...除非你的笔记本电脑可以让整个互联网访问到(这当然不太可能),或者你的网络配置得恰到好处,否则网络连接将无法流动,此时 WebHook是不可用的。 没关系,我们可以退而求其次,使用轮询变更的方式。...然后,在你运行 Jenkins 的地方安装 smee 客户端: `npm install --global smee-client` (这让 smee 命令行客户端可以接收并转发 WebHook)。...当运行起来,你将会从日志里看到,它已经连接并转发 WebHook。只要你希望能收到 WebHook 就需要保持该命令的运行。 下一步,你需要配置一个使用 GitHub 的流水线。这里我从头开始配置。

    89230

    详解谷歌无人车设计:无方向盘和脚踏板

    我过去是消费产品设计师,没有设计过汽车。我们一开始考虑到的是流动性这个更宽泛的概念。人们从 A 地到 B 地最简单的方法是什么?如何设计才能使用户行驶时更加安全?我们一开始思考的是这些问题。...我们需要创造出很直观的乘车体验。人们之前并没有尝试过类似的产品,所以我们不想让人们对它感到一头雾水。 还有一点很有意思,这款车的受众是乘客和行人,并不是司机,因为无人车并不需要司机。...所以开始构思设计时,我们就问自己“如何才能使这个车最安全?”,“如何才能让这个车更好地对周围环境作反应,来让无人驾驶比人类驾驶更安全呢?” 至于你问的灵感问题,其实我一直都努力不去想车的款式。...我们不想设计一辆看起来时速有 200 公里但实际上每小时只能跑 25 公里的车,那会让人们对车子产生疑惑,那种设计对用户来说不够诚实。 ?...我们不会设计很亮眼的颜色,比如红色,绿色或桔黄色。而且从心理学的角度来讲,这些颜色也会让人感到焦虑。所以,我们想从第一代开始,就尽可能让人们感到这辆车是很安全的。

    79570

    为软件工程师写作:先阅读我

    当然,每个人的创作实践都略有不同。但思考某人如何处理工作可以是一个有用的起点。 开始写作过程 我喜欢从思考我为谁写作开始。我发现在你开始之前,心中有一个明确的人选会有所帮助。...当你开始写作时,你经常会发现素材会以你所料之外的方向流动,并且你做出的部分前期决策可能不是正确的。这无关紧要。让素材带你到它想要去的地方,然后稍后再审阅并优化它。...第二稿是我开始考虑作品的结构和它是否合乎逻辑的地方。这就是了解你的读者真正开始产生红利的地方,因为你可以问自己诸如“这个人首先想了解什么?”这样的问题。...它通常用在新闻中,但在其他各种类型的文本,包括博客、社论专栏和营销资料中也有广泛的应用。 可以把它看成是一个重要性的递降层次结构。从最有价值的事实开始,然后用段落对论点进行支持,越往后内容越深入。...这种结构的关键在于开篇段落,它应当条理清晰、简洁明了地概括出最重要的信息,以激起读者的兴趣。 在这个结构中,最重要的句子是第一句。如果你的读者不想读第二句话,那你的文章就已经凉了。

    11310

    一个创建产品动画说明视频的新手指南

    我打算解决的问题 如何重新调整您的当前资产和艺术作品,以便使用Adobe After Effects为产品视频创建动画元素。我将向您展示动画的基本概念和简单的技巧,为您的视频提供专业的指导。...我不会涉及的: 如何概念化和脚本化您的视频,或如何添加配音或音乐。这些元素显然很重要,但今天我们不在这里谈论。各位请注意! 我们将使用一个虚构的Slack风格的产品(我们称之为Quack)为本教程。...你可以在这里下载文件跟随我。让我们开始吧… 1.从Photoshop导出 尝试使一切都是偶数尺寸并将每一部分你想让其动起来的放在单独一层。...您还应确保Frame Rate(帧率)设置为25,并且现在,Resolution (分辨率)设置为Full(如果您的计算机开始缓慢,则可以降低)。...然后将其从项目窗格拖放到预览窗口(如果您愿意的话)。 ? 我们需要把这个资源设置的看起来更可信。它需要更小,所以让我向大家介绍一下比例属性,更重要的是显示锚点。

    3K10

    笨办法学 Python · 续 第三部分:数据结构

    通过放松和创造力,你想出你的想法并实现它,然后通过批评自己的工作来使他们可靠和品质高。 在第二部分中,当你跟踪 45 分钟内实现的功能数,并寻找可以改进你的启动流程的地方时,实际上就做到了它。...你的计算机拥有内存和放入内存的数据。你可以随意填充它,也可以提供一种使数据更容易处理的结构。自从“计算机科学”开始以来,人们一直在分析如何为不同目的构建数据,然后这些结构有多好。...在这本书中,我将向你提供练习,以便你学习如何从记忆中实现它们,并了解它们的工作原理。你不需要正式的证明,只需要简单的 Python 代码和反复尝试。...尽你所能来记忆并记住它,即使它只是信息的一小部分。 把所有的信息拿走,所以你看不到它。我喜欢把它放在不同的房间,所以如果我需要再次查找,我必须离开我的作品。 尝试从记忆中创建所需的东西。...花费 15 分钟的时间来学习算法房间中的信息,记下笔记,绘制更多的图表,可视化数据的流动方式,并且做任何其他可以想到的事情来学习。

    22430

    怎样在 Unity 中创建 UI

    这个暂停菜单将显示一个内容为『Paused』的 text 组件和三个按钮组件:分别是复位按钮『Resume』,重新开始按钮『Restart』,退出按钮『Quit』,并且还是显示游戏从场景加载到现在的时间...在这篇文章的最后,你应该创建出了类似下面的界面: U1-I 在 unity 如何创建一个简单的暂停菜单 让我们开始吧,打开 unity 并且创建一个空的工程,选择 2D 或者 3D 都可以。...我主要是想用这个 tag 来展示这个教程的富文本功能。 如何创建你的按钮: 下面我门将会创建三个按钮。uinty 中已经内建了按钮组件,这可以让你在游戏中当按钮被按下的时候来响应某些事件。...在让这些按钮起作用之前,让我们在菜单中添加最后一个组件 在层级视图中右键点击『Panel』对象 选择 UI –> Text 左键点击这个新文本对象并且改变文本内容为『Time Since Startup...下面是关于本次教程的总结:希望你能更好地理解如何在 Unity 中创建用户界面。还有很多其他更复杂的 UI 组件,我没有在本文中讨论,我鼓励你去尝试使用它们,并且经历所有你觉得很酷的东西。

    5.7K20

    财富杂志专访IBM人工智能系统Watson负责人:Watson将如何实现功能演进?

    Watson如何处理这种情况? KENNY:让我讲一个这方面的例子。这是我在Weather Company工作中接触到的例子—也是种混沌系统。...你会看到未来会发生什么,你会有更准确的判断。最好的例子就是热带风暴。我们刚经历了飓风马修。我们对它的行进路径非常了解。但是如果仅仅从内部向外看,那就会冒很大的风险,结果也是灾难性的。...但是,是不是会有一款像谷歌工具栏一样的Watson应用软件?不会,我想不会有的,我想说的是人们使用Watson的地方就是公共数据和他们私有数据结合的地方。...这和搜索的发展不太一样,但是我觉得你会在每天的日常生活中看到它,你甚至不会注意到它,因为它的界面会非常简单。事实是自然语言会让其非常容易使用,比输入代码或点击右键还要容易。...所以,在这方面有很多新的应用场景—很多数据所有者并不想让这些数据公开。 财富:面部识别,读取X射线,语言处理,自然语言处理,语言文本—这些都是我们现在知道的应用。Watson未来的应用领域有哪些?

    3K70

    天天在做大数据,你的时间都花在哪了

    正如下面的一句话: 我们从出生开始如果没思考过人生本身这件事情,一切按照社会的习惯前行,那人生是没有意义的。因为你连人生都没有想过。 那么延生出来,我们有没有想过大数据本身?...我们开始让强大的算力驾着最低效的程序去跑数据,这是批处理时代的悲哀 但是随着查询效率要求越来越高,我们不得不被迫做出改变。还记得我们以前的日志都是简单的Raw文本吗?...如何让苦力干的更少 前面我们提及了,我们可能80%的工作都花在了数据的采集,清洗和校验上了。但是我们该如何压缩这部分的工作呢?...答案是: 流式计算 流式计算上层建筑 让所有的计算流动起来,就会让下面的事情变得简单: 我们可以在已经流动的数据中的任何一个环节引入一个新的支流。...当我要获取数据时,我做的本质其实就是 连接两个或者多个节点,并且在其中对数据进行转换。就如同河水,我们可以很方便的开一个支流,将水引入灌溉新的额农田。

    54330

    翻译 | Thingking in Redux(如果你只了解MVC)

    你同时也意识到,之前你可以这么做: $(“.my-button”).click(); 让一个按钮干点什么;现在?3个小时可能你的一个按钮啥也干不了。...无论何时你想让你的App产生一些活动的时候(比如:载入数据、将isLoading标志从true变为false等等),那么你需要分发一个action。...从MVC思想转换至Redux思想 MVC和Redux之间一个主要的不同点就是:MVC中的数据能够双向流动,但在Redux中,数据被限制为只能单向流动。 经典MVC。那时的人生还没有如此艰难。...假如你有一个组件,然后你想在按钮被按下的时候做些事情。那么你该从何开始呢?...虽然你仍然需要做一些基础的的模版设置填充,但是我希望这解释清楚了如何以redux的方式进行思考。 有些问题曾经让我掉到坑里一段时间(比如:信息传到了哪?

    1.4K100

    一个独立开发者总结的App 迭代设计思路

    很多用户从来不会滑动单元格(或点击“Edit”按钮),因此他们永远都不会找到删除按钮。自从Overcast 1.0发布,我收到了几百封电子邮件,问我如何不在播放的状态下删除剧集。...为了解决这些问题,我想到了一个两个阶段的方法:点击一个剧集选择它,显示各种操作按钮,点击中间新加入的播放按钮可以播放它。...我以为我可以设定足够的限制规则,但是实际应用还不太好。Google提供了一个宽泛的控制面板,可以让你阻止某些类别的广告。大多数放在敏感的分类中,并且在发布之前很容易被禁用,例如赌博、毒品等。...我决定采取行动,无论如何要放弃Google的广告以及从Google获得的崩溃报告和数据分析。 Overcast将不会再嵌入封闭源代码,我将不会再使用任何第三方的分析服务。...还有比播客应用更合适的地方来宣传播客节目吗?点击它,你能看见完整的节目列表和一键订阅的功能。 Overcast 3已经发布了。

    1.4K90

    【译】你可以用GitHub做的12件 Cool 事情

    原文链接 1 在 GitHub.com 编辑代码 我将从我认为大家都知道的一件事情开始(尽管我是直到一周前才知道)。...完成之后点击 Propose file change 按钮 GitHub 将会自动帮你 fork 该项目并且创建一个 pull request 。 很厉害吧!他自动帮你 fork 了该 repo。...我们继续,让 Gwiki 动起来,我从 NodeJS 的文档中复制了几页来作为 wiki 页面。然后创建了一个自定义侧边栏,帮助我更好地模拟一些实际的目录结构。...我的建议是: 如果你已经有多个 README.md 文件,并且想要一些关于用户指南或更详细的文档的不同的页面,那么你应该选择 Gwiki。 如果缺乏结构化/导航开始让你不爽的话,那就试试其他的吧。...12 把 GitHub 当做 CRM 使用 假设你有一个存有一些文本内容的网站,你不想将文本内容存储于真正的 HTML 源码中。 相反的,你想要将这些文本块存储于非开发人员能轻松的进行编辑的地方。

    84120

    聊天机器人教学:使用Dialogflow (API.AI)开发 iOS Chatbot App

    Dialogflow-console 观看介绍影片可以让你更快速了解Dialogflow,但如果你不想花时间看也没关係!...,并且随时可以添加它。...,以及更热门的问题”你愿意嫁给我吗?” 现在你已经知道Dialogflow是什么,并且对于如何操作有很好的观念了,现在是时候移动到另一端,开始编写Swift代码!...AVFoundation 我们需要导入AVFoundation框架,因为我们需要bot与用户交谈,该框架附带了能够从文本转为合成语音的“AVSpeechSynthesizer”类别,为了让装置与我们的用户交谈...基本上,我们以用户提供的query条件来準备API.AI文本请求,从messageField中检索文本并执行基本验证,确保文本字段不是空白,一旦我们得到了这段text,就将它丢给request的query

    4.6K30

    我从戏剧工作坊里学到了什么

    大家好像完全不在意,甚至没注意到这个人似的,继续聊天寒暄,直到那人从地上站起来,说 「我们开始吧」 哈哈哈,原来是老师。 原来还可以这么自在呀。...流动 课程中有很多练习我曾经都有在其他地方做过,比如用腹肌的力量喊出声音,听着音乐随意地舞动,闭上眼睛行走,信任伙伴往后倒之类。 开始的时候,我觉得,这些我以前都体验过了,它的目的是XX,我要如何做。...不过,觉知了这一点之后,我开始尝试放下对「感受」的执着,既不想着「我以前做过了,这个练习的目的是XX,它是这么一回事……」,也不想着「这里我应该悲伤呀,怎么没有了呢?一定是我还不够投入……」。...我就告诉自己「我不知道这会是什么体验」。 没有了预设之后,反而有种回到初心的感觉,那是一种流动的感觉。...要不是他们是四个人步调一致地跳,我真的有种他们是不是在跳即兴的感觉,生笔画圆,从身体任意一个地方伸出一支笔,然后画圆,原来重力和惯性加上身体的动力链可以这么灵动。

    66820

    如何打造最好的电商网页?

    一个经典电商页面的元素 让我们从第一项开始,很不幸的是,很多人都不谈论但对于电商流程和电商页面来说却是至关重要的,那就是… 1 顶部导航 ?...所以它应该帮助用户认知品牌,了解品牌的风格和细节。 你需要知道从哪里可以进入网站。在哪里可以搜索?...在这种情况下,用户得到了功能列表,包括尺寸、它是如何做成的、它是由什么材料制造的以及它能够容纳的内容等等。 我在这里想要做的一些事情是: 我想帮助用户了解这款产品有什么值得期待的。我不想要高回报。...特别是如果我已经提供免邮服务,我肯定不想要高回报。我希望用户可以对这款产品满意,并且知道他们将会得到什么。...这些链接,如果它们来自不同的领域,并且它们含有很好的锚文本,文本内容具体为实际产品的名称,它们将特别指向这个页面,也将极大地帮助你提升在竞争中的排名。 新鲜度。

    1K50

    数学,常识和运气:西蒙斯MIT演讲(视频+全文翻译)

    不管怎样,卫斯理是个非常漂亮的地方,自己的好奇心和这个地方的美让我感到似乎飘飘然了,我申请了卫斯理大学,然而最终我没被录取上。最后我没有任何选择了,我命中注定要来到这里。...那个时候我没有钱,也没有名,现在想来可能不行。无论如何,他们不想抛弃我。然而在那两个星期里,我们的确找到了一些可以做的生意。...有的时候你可能有一个想法想自己保留,但是很快你就觉得不想让自己看上去像个白痴一样,越快越好,开始告诉其他人你在干什么,因为那样才能最快地刺激你一些事情,没有分隔,没有小集体。...出色的员工,很棒的基础设施,开放的环境,并且尽量让每个人根据整体的表现获得薪资。这个方法很有效,而且将一直有效,并且靠着它我们赚了很多钱,足够多的钱。...以上就是我对一个很短的问题的一个很长的作答。是的,我认为高频交易是有益社会的,我认为那些反对它的人是错的。 Q3:你在基本面交易中获得的经验如何影响你在文艺复兴科技公司的建模过程?

    1.1K131
    领券