本节专题提供本节的最新资讯内容,帮你更好的了解本节。
// 照明效果 let lightMyNode = SKLightNode() lightMyNode.enabled = true lightMyNode.lightColor = UIColor.yellowColor() lightMyNode.position = CGPoint(x: size.width/2.0, y: s
SceneKit是一组类,可以用来在App中创建和呈现3D场景。 它还可以和core animation和sprite kit无缝交互,这就意味着我们可以在多种上下文中使用SceneKit 1、SceneKit的结构 SceneKit通过SCNView来呈现一切。它是UIView(NSView For OS X)的一个子类。在SCNView的内部,创建和准备一个场景(SCNScene)。场景中包含
1、SCNScene的内容可以表现为动画。动画可以合并,如果想一个节点应用了一个动画,则所有的子节点将一起变化。 下面添加一个上下移动的动画 // 为场景中的内容实现动画 let moveUpAndDownAnimation = CABasicAnimation(keyPath: "position") moveUpAndDownAnimation.byValue
材料定义呈现对象的方式。默认情况下,所有对象都是由之中平整的白色的无光泽材料制成。但是我们可以做大幅度修改。可以修改的内容如下所示: *散射分量diffuse:材料的基本颜色和纹理 *反射分量specular:材料的亮度如何,应当如何反射光 *发光分量 *法向分量normal:材料表面是否应具有更多细节来反射光 // 质感 let redMetallicMaterial = SCN
命中检测过程是指在视图上去一点,找出3D中的哪个对象位于视图上这个点的下方。实际上就是要回答:我点了谁? 在对一个SceneKit视图进行命中检测时,会得到一个SCNHitTestResult对象的数组,其中描述了找到的对象,以及该对象的相关信息。 下面这段代码可以让你点击的地方短暂的发亮一下: import UIKit import SceneKit import SpriteKit clas
约束是影响节点位置和方向的规则,我们可以向节点添加约束。 将约束与动画,物理特性或用户输入相结合,可以快速的设置复杂的场景以及节点之间的关系。约束用SCNConstraint类实现。 为了演示约束,我们将添加一个棱锥~这个棱锥将一直盯着胶囊看~哈哈~上代码: // 约束 let pointer = SCNPyramid(width: 0.5, height: 0.9, length
COLLADA文件格式是用于交换3D图形信息的业内标准XML格式。COLLADA文件(扩展名为.dae)可以包含各种有用的东西,包括几何体信息,材料,纹理,甚至是具有节点层次结构的完整场景。 COLLADA文件与库非常相似,可以进入其中,从中仅找出自己想要的项目。或者,可以将它们看作整个场景,交给SceneKit去渲染。
SceneKit配有一个3D物理引擎。物理引擎向场景中添加物理仿真。 为了向SceneKit的一个节点添加物理仿真,创建SCNPhysicsBody的一个实例,并将它附加到该节点。这个对象有了物理实体后,就开始受到物理仿真的影响。 物理实体有自己的需求。为了知道对象之间应当如何碰撞,物理系统需要知道对象的物理形状。系统很精心的将这一信息与节点的可见几何体隔离开来,因为经常会有这样一些情况:我们有一
1、AVFoundation是一个功能强大的庞大框架,能够对音频和视频执行各种复杂操作。 AVFoundation被设计用来加载和播放大量流行的视听格式。 AVFoundation将可以播放的媒体称为资产。资产可以从URL加载,也可以从其他资产创建。 当希望播放一个文件时,可以创建一个AVPlayer来控制播放。 2、用AVPlayer来播放视频 AVPlayer类是一个高级对象,可以播放AVFo
AVPlayer被设计用来播放任意类型的视频或者音频。AVFoundation还提供了一个专门为播放声音而设计的类,名为AVAdioPlayer。 对于播放音频来说,AVAdioPlayer是一种比AVPlayer更加简单的选择,并且还有优点呦: AVAdioPlayer允许为每位玩儿家设定音量; AVAdioPlayer更容易循环; 可以查询一个AVAdioPlayer,获知其当前输出功率,用来
除了播放视频和音频之外,iOS和OS X还允许访问内置的相机系统来采集视频和音频。 然而,这两个系统用于访问相机的API是不同的。 要在iOS上从相机采集视频和照片,可以使用一个名为UIImagePickerController的视图控制器。 简言之,UIImagePickerController允许我们呈现一个几乎与iPhone内置相机应用程序完全相同的界面。应用这一个界面,用户可以获取照片,将
用相机采集照片很有用,然而有时候用户也喜欢处理之前拍摄的或者从互联网下载的图片。 为了让用户从app中访问他的照片库,再次使用UIImagePickerController。如果希望呈现照片库,而不是相机,可以将图像选取器的sourseType属性设置为UIImagePickerControllerSourceType.PhotoLibrary(SavedPhotosAlbum)。 当呈现一个图像
1、偏好设置 app需要保存一些有关用户偏好设置的信息。在用户退出应用程序后,这些设置应当保持不变,所以,需要将它们存储在某些地方。 NSUserDefaults类允许以键值形式保存设置信息,我们不需要加载和读取设置文件,这些信息就会自动被保存。 2、注册默认偏好设置 当应用程序首次获得一个偏好设置的对象时(也就是应用程序第一次启动时),这个偏好设置对象是空空得~为了创建默认值,需要提供一个字典,
文件可能存储在:应用程序的捆绑包中,或者是磁盘中的其他位置。 从应用程序的捆绑包中提取文件十分简单。使用NSBundle.mainBundle()中的方法即可。下面介绍如何处理存储在其他位置的文件。 应用程序可以访问系统中几乎任何位置的文件。这里所说的几乎任何位置,取决于应用程序运行在何种操作系统上,以及应用程序是否存在于沙盒中。 使用NSFileManager: 使用NSFileManager对
在沙盒中运行的应用程序只能访问存在于沙盒中的文件,并且在指定的沙盒容器内可以无限制的进行读取和写入。此外,如果用户授权访问一个指定的文件或文件夹,沙盒还允许应用程序读取或者写入该位置。 启用沙盒: 在导航窗格顶部选择项目 在capabilities选项卡中找到app sandbox,并打开。 在沙盒设置屏幕上,可以指定应用程序应当具有访问哪些部分的权限。 打开和保存面板: 要让用户指明你的 app
cocoa使用模型-视图-控制器的模型来生成代码。将代码划分为这样独立的责任区有助于生成易于维护的代码基。 然而,在某些情况下,编写相互分离的模型、视图和控制器完全木有必要,特别是当控制器只需直接写在模型与视图之间传递信息时。许多情况下,唯一需要的行为就是用一个标签来显示存储在模型对象中的信息。 为了解决这个问题,苹果公司在OSX中引入了绑定。绑定是视图与对象之间的联系,对象的内容用于直接驱动视图
iOS和OSX都提供了表格视图和集合视图。表格视图被设计用来提供一个数据列表,而集合视图被用来显示一个数据网格。它们都可以进行自定义,以提供不同的布局~ 1、数据源和委托 尽管表格视图和集合视图有不同的布局,但是却有非常相似的API。当一个数据显示视图准备呈现内容时,它至少要知道两个问题的答案: *要现实多少项? *为显示每一项,分别需要做什么? 这些问题是向视图的数据源提出的,数据源就是符合该表
import UIKit class MyFirstTableViewController: UITableViewController { var tableData = ["swift","fu萝卜","game","dance as you wish","summerTime"] var tableData2 = ["sunshine","sunset","sme
集合视图是一种用于显示对象集合的工具。iOS和OS X上面都有集合视图,但是iOS上的实现要更好一些。下面就要说一说iOS下的UICollectionView。 利用UICollectionView,可以采用某种方式来呈现一组项目,不需要每个项目知道它是如何确定位置或者如何布局的。UICollectionView的行为方式与UITableView非常类似,但它并不是直接采用垂直列表的形式来设定内容
OS X和iOS提供了大量的工具来帮助设计app,让用户能够创建,编辑和处理文档。 尽管OS X和iOS上都提供了一些用于开发基于文档的应用程序的技术,但向用户呈现文档的方法却是不同的: OS X上,用户通过Finder管理其文档。 iOS上,仍然存在文件系统,但是用户很少能看到它。所有文档都是通过应用程序呈现给用户并进行管理的。管理文档所涉及的所有任务,都必须由应用程序完成。 一个文档可以由多个