Tag: IBM

在tvOS上构建自定义UI动画,以获取我们的IBM SXSW认知啤酒品尝体验

3月的前几周,South by South West(SXSW)在奥斯丁很重要,而我们的实验室位于奥斯丁,对我们来说,参加音乐节并炫耀我们的精湛技能对我们很重要。 有什么比使用IBM Watson强大功能根据用户的食物风味特征推荐本地奥斯丁精酿啤酒更好的方法了。 简而言之,该体验涉及询问用户他们最喜欢的食物是什么,Watson根据用户的食物风味特征推荐当地的奥斯汀啤酒,用户匿名进行味觉测试并给每个啤酒定级,然后向用户展示啤酒他们只是品尝。 以下是我们的经验: 这是一个正在运行的视频: 作为我们漂亮的用户界面的补充,我们构建了自定义动画,以将一个视图控制器的视图变形为另一个视图控制器,如以下动画所示: 让我们详细介绍如何构建UI和自定义动画。 建立使用者介面 我强烈支持通过使用UIView子类Swift文件使视图尽可能模块化,并尽可能使用xib文件构建视图的布局。 此方法将情节提要中的视图与视图控制器视图分开。 另外,使用xib文件可让您快速创建视图和子视图,而无需通过代码手动编写所有内容(这可能会很费时)。 让我们看一下我们品尝啤酒的画面之一: 上方是啤酒详细信息屏幕,我们在用户选择了自己喜欢的啤酒后向他们显示。 乍一看,该视图看起来很复杂,但是如果将其分解为子视图,则可以简化复杂性。 在上方,您可以看到我们将该视图分为9个子视图。 每个子视图都有一个关联的xib文件(如果适用)和一个UIView子类Swift文件。 我坚信每种视图本身都应该能够做以下两件事: 有一个“ setupWithData”方法,该方法允许视图接收在视图中显示信息所需的数据。 这种方法有助于将所有数据接收逻辑保持在一个地方。 知道如何获取接收到的数据以及如何按摩/准备将其显示在视图中。 这可以包括设置字符串格式,设置视图的颜色等。 做到这两点,需要从视图控制器中提取大量代码,并使每个视图都具有极高的模块化性。 对于上面显示的BeerDetailViewController,它需要做的就是创建每个子视图的实例,将每个子视图添加到其自己的视图,然后将数据传递给每个子视图。 视图控制器不再需要担心格式化该数据或设置每个视图的各种UI属性,以使其看起来像其应有的样子—每个视图已经自行处理。 建立自定义动画 让我们再次看一下我在本文前面显示的动画。 首先,我们将从解释动画如何相对于完成动画时最终到达的视图控制器的工作开始。 在这种情况下,这是BeerDetailViewController,如下所示: 还记得我们如何将这个视图分成9个子视图吗? 这些视图中的每一个还负责了解如何在其中以及自己的子视图中设置动画。 动画单个视图 让我们专注于一个特定的子视图,特别是BreweryAndBeerNameView: 让我们来看看慢动作中该特定视图的动画: 由于我们仅针对tvOS进行构建,并且tvOS仅具有一个屏幕尺寸,因此我们具有能够使用框架并从自动布局中休息的优势。 首先,我在视图的xib文件上放置标签,然后在视图的UIView子类Swift文件中连接相应的插座: 以上是BreweryAndBeerNameView在其xib文件中的外观。 以下是其UIView子类Swift文件,其子视图插座将xib文件子视图连接到UIView子类Swift文件。 ew 向下观看1张,还有8张。 好消息是,构建和赋予每个视图动画的相同模式是完全相同的。 接下来,让我们接下来讨论如何使用视图控制器协调所有视图以一起进行动画处理。 协调所有视图以进行动画处理 包含所有这些视图的视图控制器(在本例中为“ BeerDetailViewController”)负责将其每个子视图帧设置为处于帧状态的预动画,然后告诉每个子视图进行动画。 要将子视图设置为处于帧状态的预动画状态,我们告诉每个子视图为动画准备其子视图。 为此,我们调用每个子视图的prepareSubViewsForAnimation方法(我们在本文前面已经讨论过): 到BeerDetailViewController : 为此,我们首先创建一个BeerDetailViewController的新实例,并将该实例保存在RankViewViewController的属性之一中。 然后,我们告诉BeerDetailViewController准备其子视图以进行动画处理。最后,我们将BeerDetailViewController的视图添加到RankViewViewController的视图中,将BeerDetailViewController的视图放置在RankViewViewControllers视图的顶部。 […]

Swift 3.0为C#开发人员解释

编程语言提供了一种通过符号指令与计算机进行通信的方法。Swift和C#是高级语言,通常归类于多范式和编译型编程语言。 它们不仅属于同一类编程语言,而且具有许多共同的语法功能。由于这种语法相似性,C#开发人员可以轻松地将Swift编程语言用于iOS,macOS,watchOS,tvOS和Linux开发。我们将精确地介绍C#和Swift之间的关键相似之处, 常量和变量 类和对象 继承(类和协议) 关闭 泛型 和其他主要的Swift功能 您可以在IBM Swift Sandbox中试用swift代码段,该工具使任何人都可以从其浏览器编写和运行Swift代码。 const是let,而var仍然是var 常量是一个标识符,其值在程序正常执行期间无法修改。 在C#中,使用关键字const定义常量,并且定义常量的语法为 const {Type} {ConstantName} =值; const int loginAttempts = 3; 在Swift中,使用let定义常量,并且明确定义类型是可选的,因为它根据通过类型推断提供的“值”来选择数据类型。 让{ConstantName}:{Type} =值 让loginAttempts = 3 让loginAttempts:Int = 3 在Swift中,每个语句末尾的分号(;)是可选的。 但是,如果要在一行上编写多个单独的语句,则需要分号。 让loginAttempts = 3; 打印(登录尝试) 注意:在C#中,定义常量符号时,其值必须在编译时即可确定。 而在Swift中,常量的值不需要在编译时就知道,而是必须在定义了显式类型的情况下将其值精确分配一次。 与C#相似, var是在Swift中定义变量的关键字。 // C#-隐式键入局部变量 var name =“ Sagar”; //迅速 var name =“ Sagar” var name:String […]

IBM通过Swift获得成功

IBM因成为技术领域笨拙的老人而臭名昭著。 它们已经存在了很长时间,并且(不包括IBM Watson)在寻求可以迎合时代精神的新创新方面一直落后于他们。 随着IBM最近为Swift推出的IBM Bluemix Runtime(IBM的多面云平台即服务),他们证明了他们的确表明自己确实可以变得肮脏不堪,并与我们那些ra脚的年轻人混在一起。 对于那些不熟悉的人,Swift是苹果的宝贝。 这是他们为macOS,iOS,OSOS开发的编程语言,基本上就是您可以想到的任何现代Apple OS。 简洁,自然的语言特性使它在编码社区中大受欢迎,尤其是对于那些有志于为Apple OS做出任何贡献的人(移动开发人员,我在看着你!)。 它适用于客户端和服务器端开发,需要较少的内存使用,并且总体上减少了硬件磨损,所有这些都导致了一种编码语言,使每个人的生活变得更加轻松。 苹果公司使学习变得简单(和FuN !!!),使Swift更具吸引力。 以iPad上的Swift Playgrounds应用程序为例,在该应用程序中,用户可通过围绕一个谜题的小头像来学习如何使用Swift。 可爱。 如果您在Quora,Medium或Twitter上关注我,那么您可能已经注意到我是Swift的忠实粉丝: 最初发布在 DamianEsteban.com