摘要: 1,UIView常用的一些属性如下:frame:相对父视图的坐标和大小(x,y,w,h)bounds:相对自身的坐标和大小,所以bounds的x和y永远为0(0,0,w,h)center:相对父视图的中点坐标transform:控制视图的放大缩小和旋转superview:获取父视图subviews:... 阅读全文
posted @ 2015-09-26 19:30 brave-sailor 阅读(720) 评论(0) 推荐(0)
摘要: UISreen类代表了屏幕,开发中一般用来获取屏幕相关的属性,例如获取屏幕的大小。1234567//获取屏幕大小var screenBounds:CGRect = UIScreen.mainScreen().boundsprintln(screenBounds) //iPhone6输出:(0.0,0... 阅读全文
posted @ 2015-09-26 19:02 brave-sailor 阅读(297) 评论(0) 推荐(0)
摘要: 在过去只有iphone4的时候,可以在代码里将一个可视单元的位置写死,这样是没问题的,但随着iPhone5,6的发布,屏幕尺寸有了越来越多种可能。这就要求App的UI控件具有在不同屏幕尺寸的设备上具有一定动态的可调性,实现较好的UI展示效果。 结合使用Auto Layout和Size Classe... 阅读全文
posted @ 2015-09-26 19:01 brave-sailor 阅读(587) 评论(0) 推荐(0)
摘要: 1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术:(1)NSThread(2)Cocoa NSOperation(NSOperation和NSOperationQueue)(3)Grand Central Dispath(GCD)2,本文着重介绍Grand Central... 阅读全文
posted @ 2015-09-26 18:59 brave-sailor 阅读(373) 评论(0) 推荐(0)
摘要: 1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术:(1)NSThread(2)Cocoa NSOperation(NSOperation和NSOperationQueue)(3)Grand Central Dispath(GCD)2,本文着重介绍Cocoa NSOpera... 阅读全文
posted @ 2015-09-26 18:56 brave-sailor 阅读(469) 评论(0) 推荐(0)
摘要: 1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术:(1)NSThread(2)Cocoa NSOperation(NSOperation和NSOperationQueue)(3)Grand Central Dispath(GCD)2,本文着重介绍NSThreadNSTr... 阅读全文
posted @ 2015-09-26 18:55 brave-sailor 阅读(320) 评论(0) 推荐(0)
摘要: Swift使用自动引用计数(ARC)来管理应用程序的内存使用。在大多是情况下,并不需要考虑内存的管理。当实例不再需要的时候,ARC会自动释放这些实例所使用的内存。但ARC并不是绝对安全的。下面两种情况会发生内存泄露。1,类实例之间的循环强引用两个类实例都有一个强引用指向对方,这样的情况就是强引用循环... 阅读全文
posted @ 2015-09-26 18:54 brave-sailor 阅读(545) 评论(0) 推荐(0)
摘要: 下面对String常用的属性和方法做个总结1,判断是否为空:isEmpty123var str:Stringif str.isEmpty{}2,获取字符数量:countElements12let str = "hangge.com"println("\(countElements(str))个字符"... 阅读全文
posted @ 2015-09-26 18:42 brave-sailor 阅读(705) 评论(0) 推荐(0)
摘要: 游戏少不了背景音乐和音效。下面我们通过创建一个管理音效的类,来实现背景音乐的播放,同时点击屏幕可以播放相应的音效。声音管理类 SoundManager.swift1234567891011121314151617181920212223242526272829import SpriteKit//引... 阅读全文
posted @ 2015-09-26 18:32 brave-sailor 阅读(798) 评论(0) 推荐(0)
摘要: 为了增强较大数值的可读性,Swift语言增加了下划线(_)来分隔数值中的数字。不管是整数,还是浮点数,都可以使用下划线来分隔数字。1234//数值可读性let value1 = 10_000_000_000let value2 = 1_000_000.000_000_1var value3:Int ... 阅读全文
posted @ 2015-09-26 18:32 brave-sailor 阅读(435) 评论(0) 推荐(0)
摘要: 下面通过一个样例演示如何实现飞行道具的生成,以及道具碰撞拾取。样例说明:1,屏幕从右到左不断地生成苹果飞过来(苹果高度随机)2,点击屏幕可以让熊猫跳跃3,熊猫碰到苹果,苹果消失运行效果:样例代码:苹果工厂类 AppleFactory.swift1234567891011121314151617181... 阅读全文
posted @ 2015-09-26 18:30 brave-sailor 阅读(556) 评论(0) 推荐(0)
摘要: 在游戏开发中,比如跑酷游戏。我们需要实现背景的无限循环滚动,来营造运动的效果。除了单层的背景滚动,还有视差滚动。视差滚动是指让多层背景以不同的速度移动,形成立体的效果,从而带来非常出色的视觉体验。样例说明:1,本样例背景分为两层。第一层更靠近游戏窗口的色彩更鲜艳,移动速度也更快一些。第二层由于要模拟... 阅读全文
posted @ 2015-09-26 18:28 brave-sailor 阅读(600) 评论(0) 推荐(0)
摘要: 一,下面演示了如何开发一个跑酷游戏,实现的功能如下:1,平台工厂会不断地生成平台,并且向左移动。当平台移出游戏场景时就可将其移除。2,生成的平台宽度随机,高度随机。同时短平台踩踏的时候会下落。3,奔跑小人设置了三种状态:奔跑,跳跃,打滚。4,跳跃时可以再进行二段跳。5,如果在一定高度落下,会先打滚... 阅读全文
posted @ 2015-09-26 18:27 brave-sailor 阅读(586) 评论(0) 推荐(0)
摘要: 对于场景内对象元件的点击响应,我们可以在场景的touchesBegan()方法中内统一处理。SKScene中touchesBegan()是响应屏幕点击的方法,在这里面我们可以先获取点击位置下所有的对象,然后筛选出需要的对象再调用该对象的方法。12345678910111213141516171819... 阅读全文
posted @ 2015-09-26 18:24 brave-sailor 阅读(738) 评论(0) 推荐(0)
摘要: 我们通常继承SKSpriteNode来实现游戏中的元素,除了可以使用图片作为纹理皮肤外。我们还可以使用动画纹理集来实现动画播放。动画纹理集的制作也很简单,首先要有一套动画序列图,然后把它们放到一个文件夹下,最后把文件夹改名为*.atlas后缀就行了。下面通过一个“神经猫”动画元件来演示:--- 神... 阅读全文
posted @ 2015-09-26 18:19 brave-sailor 阅读(775) 评论(0) 推荐(0)
摘要: 下面是生成一个“围住神经猫”游戏的初始场景:1,界面下方会生成9*9共81个圆点,同时圆点内部添加文本标签显示索引2,默认圆点为灰色,每行随机取两个点变为红色3,奇数行和偶数行有一定的错位,错位的横向距离是圆的半径效果图如下:1,首先给资源库Images.xcassets添加资源图片:2,圆点类G... 阅读全文
posted @ 2015-09-26 18:16 brave-sailor 阅读(464) 评论(0) 推荐(0)
摘要: 一,什么是SpriteKitSpriteKit是苹果公司官方出品,用于制作2D游戏的框架。这个框架具备了图形渲染和动画的功能。可以使图像或者精灵(sprite)动 起来。SpriteKit的渲染方式是传统的环形渲染,允许在渲染前处理每一帧点的内容。例如定义场景中的元素,以及这些内容在每一帧中是如何... 阅读全文
posted @ 2015-09-26 18:15 brave-sailor 阅读(959) 评论(0) 推荐(0)
摘要: 1,先把背景图片bg.jpg,bg@2x.jpg直接拖进Images.xcassets中2,设置如下代码(背景图直接铺满整个屏幕)12345678910111213141516import SpriteKitclass GameScene: SKScene {//当切换到这个场景视图后overrid... 阅读全文
posted @ 2015-09-26 18:15 brave-sailor 阅读(370) 评论(0) 推荐(0)
摘要: 使用UILocalNotification可以很方便的实现消息的推送功能。我们可以设置这个消息的推送时间,推送内容等。当推送时间一到,不管用户在桌面还是其他应用中,屏幕上方会都显示出推送消息。1,推送消息的发送--- AppDelegate.swift ---1234567891011121314... 阅读全文
posted @ 2015-09-26 18:14 brave-sailor 阅读(523) 评论(0) 推荐(0)
摘要: 通过使用静态单元格的列表,我们可以很方便的进行页面布局。下面通过一个“添加任务页面”来进行演示。效果图如下:实现步骤:1,在storyboard中拖入一个TableViewController,同时创建一个对应的类(MyTabelViewController.swift)进行绑定。2,选择表格,在... 阅读全文
posted @ 2015-09-26 18:13 brave-sailor 阅读(508) 评论(0) 推荐(0)
摘要: 在Swift开发中,我们有时需要动态的添加或删除列表的单元格。比如我们做一个消息提醒页面,默认页面只显示两个单元格。当点击第二个单元格(时间标签)时,下面会再添加一个单元格放置日期选择控件(同时新增单元格的高度也会变化)。而再次点击第二个单元格,日期选择控件又会隐藏。123456789101112... 阅读全文
posted @ 2015-09-26 18:13 brave-sailor 阅读(621) 评论(0) 推荐(0)
摘要: 在AppDelegate中有如下两个方法要注意:applicationDidEnterBackground() 当应用进入后台时起作用applicationWillTerminate() 当应用终止的时候起作用有了这两个方法,我们就可以对程序数据进行保护。比如当应用崩溃,内存不足被系统终止,程序在... 阅读全文
posted @ 2015-09-26 18:11 brave-sailor 阅读(520) 评论(0) 推荐(0)
摘要: 下面通过一个样例演示如何对数组元素进行排序。数组内为自定义用户对象,最终要实现按用户名排序,数据如下:1234var userList = [UserInfo]()userList.append(UserInfo(name: "张三", phone: "4234"))userList.append(... 阅读全文
posted @ 2015-09-26 18:11 brave-sailor 阅读(796) 评论(0) 推荐(0)
摘要: 下面通过一个例子说明如何在代码中进行segue页面的切换,以及参数的传递。样例功能如下:1,主界面中是一个列表(这个列表是在代码中实现)2,点击列表项时,界面会切换到详情页面,同时传递改列表项的值到详细页面。效果图如下:实现步骤:1,在storyboard中拖入一个新的ViewController用... 阅读全文
posted @ 2015-09-26 18:09 brave-sailor 阅读(824) 评论(0) 推荐(0)
摘要: 列表单元格尾部可以添加各种样式的附件,如感叹号,三角箭头等。而且点击内容区域与点击附件的这两个响应事件是不同的,这样可以方便我们实现不同的功能(比如点击内容则查看详情,点击感叹号则编辑) 123456789101112131415161718192021222324//列表项尾部附件点击overri... 阅读全文
posted @ 2015-09-26 18:09 brave-sailor 阅读(386) 评论(0) 推荐(0)
摘要: 1,问题描述有时我们开发的时候需要先把“确认”按钮初始设置为不可用,当文本框中输入文字以后,再将输入按钮变为可用。2,实现原理(1)要检测文本框内容的变化,我们需要让新界面的Controller遵循一个文本协议UITextFieldDelegate。同时在viewDidLoad方法内将文本框的代理... 阅读全文
posted @ 2015-09-26 18:08 brave-sailor 阅读(1440) 评论(0) 推荐(0)
摘要: 下面通过一个例子将联系人数据保存到沙盒的“documents”目录中。(联系人是一个数组集合,内部为自定义对象)。功能如下:1,点击“保存”将联系人存入userList.plist文件中2,点击“读取”从数据文件中加载解析出联系人注意:1,本例使用了NSCoder,这个封装了许多技术细节,使用它我们... 阅读全文
posted @ 2015-09-26 18:08 brave-sailor 阅读(555) 评论(0) 推荐(0)
摘要: 项目创建完毕后,默认是使用ViewController作为主界面视图。下面通过样例演示,如何使用TableViewController作为主界面视图,同时演示如何在storyboard中设置表格及内部单元格样式。功能如下:1,程序运行后即为表格页面2,表格内容为“行号:内容”3,点击单元格可以切换勾... 阅读全文
posted @ 2015-09-26 18:07 brave-sailor 阅读(3000) 评论(0) 推荐(0)
摘要: 在开发中,经常需要用到协议代理模式。比如,进入编辑页面修改数据后,将新数据回传到主界面。下面通过一个样例来说明协议代理模式,功能如下:1,主页面有一个标签和一个修改按钮,点击修改按钮会跳转到编辑页面2,编辑页面中修改输入框的文字后,点击“确定”则返回主页面,同时主页面的标签值会替换成新值3,如果点... 阅读全文
posted @ 2015-09-26 18:07 brave-sailor 阅读(583) 评论(0) 推荐(0)
摘要: 下面的一个样例是让tableView显示数据的时候具有一个很炫的3D缩放效果。我们只需要实现tableView的willDisplayCell方法。看方法名就知道这是在Cell将要显示的时候执行的方法。1234567891011//设置cell的显示动画func tableView(tableVie... 阅读全文
posted @ 2015-09-26 18:06 brave-sailor 阅读(327) 评论(0) 推荐(0)
摘要: 使用MPMoviePlayerController我们可以是进行音乐播放,下面是一个播放器样例。同时,播放时还可以显示播放时间和播放进度。123456789101112131415161718192021222324252627282930313233343536373839404142434445... 阅读全文
posted @ 2015-09-26 18:06 brave-sailor 阅读(403) 评论(0) 推荐(0)
摘要: 使用NSURLConnection.sendAsynchronousRequest()可以采用异步获取的方式取得数据。下面通过对数据获取类进行封装,演示如何进行数据请求与接收。1,HttpController.swift (数据获取封装类,结果处理协议)12345678910111213141516... 阅读全文
posted @ 2015-09-26 18:05 brave-sailor 阅读(585) 评论(0) 推荐(0)
摘要: 下面是一个异步请求加载图片数据的样例1234567891011//定义NSURLlet imgURL:NSURL=NSURL(string:"http://hangge.com/blog/images/logo.png")!//定义NSURLRequestlet request:NSURLReque... 阅读全文
posted @ 2015-09-26 18:05 brave-sailor 阅读(498) 评论(0) 推荐(0)
摘要: 1,图片左中右三宫格缩放形式 //左右14像素不变形,中间缩放let imgTrackRight = UIImage(named:"slider_max")let imgRight = imgTrackRight!.stretchableImageWithLeftCapWidth(14, topCa... 阅读全文
posted @ 2015-09-26 13:29 brave-sailor 阅读(594) 评论(0) 推荐(0)