随笔分类 - Swift语言
摘要:Swift使用自动引用计数(ARC)来管理应用程序的内存使用。在大多是情况下,并不需要考虑内存的管理。当实例不再需要的时候,ARC会自动释放这些实例所使用的内存。但ARC并不是绝对安全的。下面两种情况会发生内存泄露。1,类实例之间的循环强引用两个类实例都有一个强引用指向对方,这样的情况就是强引用循环...
阅读全文
摘要:下面对String常用的属性和方法做个总结1,判断是否为空:isEmpty123var str:Stringif str.isEmpty{}2,获取字符数量:countElements12let str = "hangge.com"println("\(countElements(str))个字符"...
阅读全文
摘要:游戏少不了背景音乐和音效。下面我们通过创建一个管理音效的类,来实现背景音乐的播放,同时点击屏幕可以播放相应的音效。声音管理类 SoundManager.swift1234567891011121314151617181920212223242526272829import SpriteKit//引...
阅读全文
摘要:为了增强较大数值的可读性,Swift语言增加了下划线(_)来分隔数值中的数字。不管是整数,还是浮点数,都可以使用下划线来分隔数字。1234//数值可读性let value1 = 10_000_000_000let value2 = 1_000_000.000_000_1var value3:Int ...
阅读全文
摘要:下面通过一个样例演示如何实现飞行道具的生成,以及道具碰撞拾取。样例说明:1,屏幕从右到左不断地生成苹果飞过来(苹果高度随机)2,点击屏幕可以让熊猫跳跃3,熊猫碰到苹果,苹果消失运行效果:样例代码:苹果工厂类 AppleFactory.swift1234567891011121314151617181...
阅读全文
摘要:在游戏开发中,比如跑酷游戏。我们需要实现背景的无限循环滚动,来营造运动的效果。除了单层的背景滚动,还有视差滚动。视差滚动是指让多层背景以不同的速度移动,形成立体的效果,从而带来非常出色的视觉体验。样例说明:1,本样例背景分为两层。第一层更靠近游戏窗口的色彩更鲜艳,移动速度也更快一些。第二层由于要模拟...
阅读全文
摘要:一,下面演示了如何开发一个跑酷游戏,实现的功能如下:1,平台工厂会不断地生成平台,并且向左移动。当平台移出游戏场景时就可将其移除。2,生成的平台宽度随机,高度随机。同时短平台踩踏的时候会下落。3,奔跑小人设置了三种状态:奔跑,跳跃,打滚。4,跳跃时可以再进行二段跳。5,如果在一定高度落下,会先打滚...
阅读全文
摘要:对于场景内对象元件的点击响应,我们可以在场景的touchesBegan()方法中内统一处理。SKScene中touchesBegan()是响应屏幕点击的方法,在这里面我们可以先获取点击位置下所有的对象,然后筛选出需要的对象再调用该对象的方法。12345678910111213141516171819...
阅读全文
摘要:我们通常继承SKSpriteNode来实现游戏中的元素,除了可以使用图片作为纹理皮肤外。我们还可以使用动画纹理集来实现动画播放。动画纹理集的制作也很简单,首先要有一套动画序列图,然后把它们放到一个文件夹下,最后把文件夹改名为*.atlas后缀就行了。下面通过一个“神经猫”动画元件来演示:--- 神...
阅读全文
摘要:下面是生成一个“围住神经猫”游戏的初始场景:1,界面下方会生成9*9共81个圆点,同时圆点内部添加文本标签显示索引2,默认圆点为灰色,每行随机取两个点变为红色3,奇数行和偶数行有一定的错位,错位的横向距离是圆的半径效果图如下:1,首先给资源库Images.xcassets添加资源图片:2,圆点类G...
阅读全文
摘要:一,什么是SpriteKitSpriteKit是苹果公司官方出品,用于制作2D游戏的框架。这个框架具备了图形渲染和动画的功能。可以使图像或者精灵(sprite)动 起来。SpriteKit的渲染方式是传统的环形渲染,允许在渲染前处理每一帧点的内容。例如定义场景中的元素,以及这些内容在每一帧中是如何...
阅读全文
摘要:1,先把背景图片bg.jpg,bg@2x.jpg直接拖进Images.xcassets中2,设置如下代码(背景图直接铺满整个屏幕)12345678910111213141516import SpriteKitclass GameScene: SKScene {//当切换到这个场景视图后overrid...
阅读全文
摘要:使用UILocalNotification可以很方便的实现消息的推送功能。我们可以设置这个消息的推送时间,推送内容等。当推送时间一到,不管用户在桌面还是其他应用中,屏幕上方会都显示出推送消息。1,推送消息的发送--- AppDelegate.swift ---1234567891011121314...
阅读全文
摘要:通过使用静态单元格的列表,我们可以很方便的进行页面布局。下面通过一个“添加任务页面”来进行演示。效果图如下:实现步骤:1,在storyboard中拖入一个TableViewController,同时创建一个对应的类(MyTabelViewController.swift)进行绑定。2,选择表格,在...
阅读全文
摘要:在Swift开发中,我们有时需要动态的添加或删除列表的单元格。比如我们做一个消息提醒页面,默认页面只显示两个单元格。当点击第二个单元格(时间标签)时,下面会再添加一个单元格放置日期选择控件(同时新增单元格的高度也会变化)。而再次点击第二个单元格,日期选择控件又会隐藏。123456789101112...
阅读全文
摘要:在AppDelegate中有如下两个方法要注意:applicationDidEnterBackground() 当应用进入后台时起作用applicationWillTerminate() 当应用终止的时候起作用有了这两个方法,我们就可以对程序数据进行保护。比如当应用崩溃,内存不足被系统终止,程序在...
阅读全文
摘要:下面通过一个样例演示如何对数组元素进行排序。数组内为自定义用户对象,最终要实现按用户名排序,数据如下:1234var userList = [UserInfo]()userList.append(UserInfo(name: "张三", phone: "4234"))userList.append(...
阅读全文
摘要:下面通过一个例子说明如何在代码中进行segue页面的切换,以及参数的传递。样例功能如下:1,主界面中是一个列表(这个列表是在代码中实现)2,点击列表项时,界面会切换到详情页面,同时传递改列表项的值到详细页面。效果图如下:实现步骤:1,在storyboard中拖入一个新的ViewController用...
阅读全文
摘要:列表单元格尾部可以添加各种样式的附件,如感叹号,三角箭头等。而且点击内容区域与点击附件的这两个响应事件是不同的,这样可以方便我们实现不同的功能(比如点击内容则查看详情,点击感叹号则编辑) 123456789101112131415161718192021222324//列表项尾部附件点击overri...
阅读全文
摘要:1,问题描述有时我们开发的时候需要先把“确认”按钮初始设置为不可用,当文本框中输入文字以后,再将输入按钮变为可用。2,实现原理(1)要检测文本框内容的变化,我们需要让新界面的Controller遵循一个文本协议UITextFieldDelegate。同时在viewDidLoad方法内将文本框的代理...
阅读全文