摘要:
前面讲了如何让程序申请后台短时运行。但这个额外延长的时间毕竟有限。所以从iOS7起又引入两种在后台运行任务的方式:后台获取和后台通知。1,后台获取介绍后台获取(Background Fetch)是为了那些需要定期更新的应用程序设计的,比如天气应用,新闻客户端,社交网络应用程序等。在启动后台获取之后,... 阅读全文
posted @ 2015-09-28 20:28
brave-sailor
阅读(606)
评论(0)
推荐(0)
摘要:
1,程序的挂起和退出由于iOS设备资源有限。当用户点击了home键,或者另一个应用程序启动了。那么原先那个程序便进入后台被挂起,不是退出,只是停止执行代码,同时它的内存被锁定。当应用程序恢复时,它会从停止的位置重新开始。2,如下特殊的应用程序可以在后台长时间的运行(1)在后台播放音频的应用程序可以在... 阅读全文
posted @ 2015-09-28 20:27
brave-sailor
阅读(1002)
评论(0)
推荐(0)
摘要:
1,委托的说明委托(delegate)是Cocoa的一个术语,表示将一个对象的部分功能转交给另一个对象。比如对象A希望对象B知道将要发生或已经发生某件事情,对象A可以把对象B的引用存为一个实例变量。这个对象B称为委托。当事件发生时,它检查委托对象是否实现了与该事件相适应的方法。如果已经实现,则调用该... 阅读全文
posted @ 2015-09-28 16:02
brave-sailor
阅读(407)
评论(0)
推荐(0)
摘要:
在Swift中,可以使用函数类型的参数,也可以使用函数类型的返回值。而作为返回值的函数,还能“捕获”外部的值,并多次使用它。这个特性,常可用来创建各种生成器。下面通过创建一个“随机数生成器函数”作为演示:在指定范围内生成随机数,同时每次生成的随机数都不重复。123456789101112131415... 阅读全文
posted @ 2015-09-28 15:59
brave-sailor
阅读(1074)
评论(0)
推荐(0)
摘要:
闭包(即一些小的匿名代码块),可以像函数一样使用。可以很方便的将闭包传给其他函数,告诉它们应当如何执行某一个任务。1,使用sort方法和闭包进行数组排序sort方法返回一个数组的有序版本。(sort方法即为Swift2.0之前的sorted方法。而原来的sort方法改名为sortInPlace,用来... 阅读全文
posted @ 2015-09-28 15:59
brave-sailor
阅读(440)
评论(0)
推荐(0)
摘要:
自Swift1.1开始,初始化init方法便有返回nil的能力。我们可以在init声明的时候在其后面加上一个 ? 或者 ! 来表示初始化失败时可能返回nil。比如,给Int类添加一个将字符串初始化成数字的init方法。1234567891011121314extension Int {init?(f... 阅读全文
posted @ 2015-09-28 15:54
brave-sailor
阅读(395)
评论(0)
推荐(0)
摘要:
我前面写了篇文章讲解如何给图片添加文字水印,而如果想要添加图片类型的水印也很简单,只要把原来代码里添加文字的部分改成图片即可。1,效果图如下:(在图片左上角添加了一个半透明的logo图片)2,为方便使用,我们通过扩展UIImage类来实现添加图片水印功能(水印图片透明度,位置,边距都可以设置)12... 阅读全文
posted @ 2015-09-28 15:53
brave-sailor
阅读(990)
评论(0)
推荐(0)
摘要:
通常我们可以使用16进制的格式表示RGB颜色,比如0x2f88c0。通过位操作运算,能很方便的将其中的R,G,B颜色各部分分别提取出来。反之,也可以将R,G,B颜色值组合成一个完整的颜色。1,提取颜色的组成部分1234var color:uint = 0x445577var r:uint = col... 阅读全文
posted @ 2015-09-28 15:53
brave-sailor
阅读(350)
评论(0)
推荐(0)
摘要:
想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能。1,效果图如下:(在图片左上角和右下角都添加了文字。)2,为方便使用,我们通过扩展UIImage类来实现添加水印功能(文字大小,文字颜色,背景色,位置,边距都可以设置)12345678910111213141516171819... 阅读全文
posted @ 2015-09-28 15:20
brave-sailor
阅读(1111)
评论(0)
推荐(0)
摘要:
类似于PS,Swift中也可对图片UIImage进行图层混合(blending),而且提供了相当丰富的混合模式(blendMode)。本文先介绍使用其中的kCGBlendModeDestinationIn实现图片颜色的修改。1,扩展UIImage,添加着色方法首先为便于blending,我们扩展系统... 阅读全文
posted @ 2015-09-28 14:12
brave-sailor
阅读(1499)
评论(0)
推荐(0)
摘要:
final关键字在大多数的编程语言中都存在,表示不允许对其修饰的内容进行继承或者重新操作。Swift中,final关键字可以在class、func和var前修饰。通常大家都认为使用final可以更好地对代码进行版本控制,发挥更佳的性能,同时使代码更安全。下面对这些说法做个总结。1,想通过使用fin... 阅读全文
posted @ 2015-09-28 13:55
brave-sailor
阅读(4791)
评论(1)
推荐(0)
摘要:
过去Swift要实现单例,无非是这三种方式:全局变量,内部变量和dispatch_once方式。但都略显繁琐。后来从1.2版本起,Swift中添加了如 static let 和 static var 这样的类变量的支持,这样单例的实现又简化了许多。下面提供两种比较好的单例写法。(要注意:不管哪种写法... 阅读全文
posted @ 2015-09-28 11:58
brave-sailor
阅读(773)
评论(0)
推荐(0)
摘要:
String是Swift里新增加的类型,它与原来的NSString可以很方便地互相转换。但在实际开发中,我们该如何选择?1,能使用String类型就尽量使用String类型,原因如下:(1)现在Cocoa里所有的API都能接受和返回String类型,所以也没必要特地转换下。(2)Swift的Stri... 阅读全文
posted @ 2015-09-28 11:57
brave-sailor
阅读(422)
评论(0)
推荐(0)
摘要:
Swift虽然是一个新出的语言,但却不提供专门的处理正则的语法和类。所以我们只能使用古老的NSRegularExpression类进行正则匹配。即先接受一个正则表达式的字符串,由此生成NSRegularExpression对象,再用该对象来匹配输入字符串,返回匹配结果。1,为便于使用,先定义一个正则... 阅读全文
posted @ 2015-09-28 11:57
brave-sailor
阅读(1763)
评论(0)
推荐(0)
摘要:
我原来写过一篇文章“Swift - 带结果列表的搜索条(UISearchDisplayController)的用法”,当时是使用UISearchDisplayController来实现带有搜索功能的列表,由于UISearchDisplayController本身就整合了搜索条和表格,所有用起来很方便... 阅读全文
posted @ 2015-09-28 11:56
brave-sailor
阅读(515)
评论(0)
推荐(0)
摘要:
使用UILocalNotification除了可以实现本地消息的推送功能(可以设置推送内容,推送时间,提示音),还可以设置应用程序右上角的提醒个数。下面演示如何设置,效果图如下:--- AppDelegate.swift ---123456789101112131415161718192021222... 阅读全文
posted @ 2015-09-28 11:23
brave-sailor
阅读(345)
评论(0)
推荐(0)
摘要:
项目创建后,AppDelegate类中默认带有如下几个方法,具体功能如下:1,应用程序第一次运行时执行这个方法只有在App第一次运行的时候被执行过一次,每次App从后台激活时都不会再执行该方法。(注:所有一般我们都在这里获取用户许可,比如本地消息推送的许可等)1234func application... 阅读全文
posted @ 2015-09-28 11:22
brave-sailor
阅读(770)
评论(0)
推荐(0)
摘要:
在Xcode中我们可以很方便的将APP适配各种本地化语言。苹果的框架已经帮我们把不同语言的数据分离开,包括图片,声音,视频,文档,用户界面文字(甚至代码中编写的用户界面文字),它们会被建立在同一个bundle中,便于我们管理。下面分别介绍字符串,图片,应用程序名是如何实现多语言本地化,以及如何切换语... 阅读全文
posted @ 2015-09-28 11:21
brave-sailor
阅读(1031)
评论(0)
推荐(0)
摘要:
要实现打电话功能,最简单最直接的方式便是:直接跳到拨号界面 (注意:这个需要真机调试,模拟器无效果)12//自动打开拨号页面并自动拨打电话UIApplication.sharedApplication().openURL(NSURL(string :"tel://123456")!) 阅读全文
posted @ 2015-09-28 11:20
brave-sailor
阅读(817)
评论(0)
推荐(0)
摘要:
使用MessageUI.framework框架可以实现短信发送功能,步骤如下:(1)首先判断设备是否有发送短信功能(2)如果设备允许发送短信,创建一个MFMessageComposeViewController视图控制器,并对其设置短信内容和收件人号码列表。(3)短信发送后,会执行回调代理方法,可以... 阅读全文
posted @ 2015-09-28 11:19
brave-sailor
阅读(867)
评论(0)
推荐(0)
摘要:
使用MessageUI.framework框架除了可以发送短信,还能发送Email,步骤如下:(1)首先判断设备是否有发送邮件功能(2)如果设备允许发送邮件,创建一个MFMailComposeViewController视图控制器,并对其设置邮件标题,正文内容,收件人,附件等。(3)邮件发送后,会执... 阅读全文
posted @ 2015-09-28 11:19
brave-sailor
阅读(849)
评论(0)
推荐(0)
摘要:
1,通讯录访问介绍通讯录(或叫地址簿,电话簿)是一个数据库,里面储存了联系人的相关信息。要实现访问通讯录有如下两种方式:(1)AddressBook.framework框架 : 没有界面,通过代码来获取所有联系人信息(本文样例使用此方式)(2)AddressBookUI.framework框架 : ... 阅读全文
posted @ 2015-09-28 11:17
brave-sailor
阅读(382)
评论(0)
推荐(0)
摘要:
使用AddressBook.framework框架,我们除了可以很方便的获取通信录里的联系人。同时,还能对通讯录进行新增、修改、删除联系人操作。(注意:这些操作同查询一样,首先需要发起授权请求)1,添加新联系人123456789101112131415161718192021222324252627... 阅读全文
posted @ 2015-09-28 11:17
brave-sailor
阅读(461)
评论(0)
推荐(0)
摘要:
1,通讯录访问介绍通讯录(或叫地址簿,电话簿)是一个数据库,里面储存了联系人的相关信息。要实现访问通讯录有如下两种方式:(1)AddressBook.framework框架 : 没有界面,通过代码来获取所有联系人信息(2)AddressBookUI.framework框架 : 通过系统提供的通讯录交... 阅读全文
posted @ 2015-09-28 11:16
brave-sailor
阅读(587)
评论(0)
推荐(0)
摘要:
通过使用MapKit可以将地图嵌入到视图中,MapKit框架除了可以显示地图,还支持在地图上做标记。1,通过mapType属性,可以设置地图的显示类型MKMapType.Standard :标准地图MKMapType.Satellite:卫星地图MKMapType.Hybrid :混合地图2,地图... 阅读全文
posted @ 2015-09-28 11:11
brave-sailor
阅读(1536)
评论(0)
推荐(0)
摘要:
通过CoreLocation类,得到的定位信息都是以经度和纬度等表示的地理信息,通过CLGeocoder类可以将其反编码成一个地址。反之,也可根据一个地址获取经纬度。1,通过经纬度获取地址12345678910111213141516171819202122232425262728293031323... 阅读全文
posted @ 2015-09-28 11:10
brave-sailor
阅读(740)
评论(0)
推荐(0)
摘要:
CoreLocation这个定位框架除了可以获取设备的位置数据,还可以获取设备的方向(可以用来实现指南针功能等)。1,CLHeading对象通过一组属性提供航向相关数据:magneticHeading :磁极方向(磁北对应于随时间变化的地球磁场极点)trueHeading :真实方向(真北始终指向地... 阅读全文
posted @ 2015-09-28 11:09
brave-sailor
阅读(486)
评论(0)
推荐(0)
摘要:
CoreLocation是iOS中一个提供设备定位的框架。通过这个框架可以实现定位处理,从而获取位置数据,比如经度、纬度、海拔信息等。1,定位精度的设置定位服务管理类CLLocationManager的desiredAccuracy属性表示精准度,有如下6种选择:kCLLocationAccurac... 阅读全文
posted @ 2015-09-28 11:08
brave-sailor
阅读(807)
评论(0)
推荐(0)
摘要:
摇晃手机也是一种常用的交互手段(比如微信摇一摇功能)。iOS SDK中已经将shake事件方便地融合进去了,就像触发touch事件一样简单,发生摇晃事件后程序会自动执行。1234567891011121314151617181920212223import UIKitclass ViewContro... 阅读全文
posted @ 2015-09-28 11:05
brave-sailor
阅读(291)
评论(0)
推荐(0)
摘要:
通过UIDevice.currentDevice()来获取设备,可以取得设备当前的方向。同时,我们可以添加一个通知来监听设备方向的变化,这样在开发中可以对不同的方向定制不同的排版布局界面。下面通过一个样例,演示如何监测设备方向:123456789101112131415161718192021222... 阅读全文
posted @ 2015-09-28 11:02
brave-sailor
阅读(472)
评论(0)
推荐(0)
摘要:
NSURLSession类支持三种类型的任务:加载数据、下载和上传。下面通过样例分别进行介绍。1,使用Data Task加载数据使用全局的sharedSession()和dataTaskWithRequest方法创建。1234567891011121314151617181920212223fun... 阅读全文
posted @ 2015-09-28 11:00
brave-sailor
阅读(547)
评论(0)
推荐(0)
摘要:
使用NSURLConnection可以实现http通信。它提供了异步请求和同步请求两种通信方式。注意:同步请求数据会造成主线程阻塞,必须请求结束后用户才能做其他的操作,所有通常在请求大数据或者网络不畅时不建议使用。同步请求样例:1234567891011121314151617181920//创建N... 阅读全文
posted @ 2015-09-28 10:55
brave-sailor
阅读(1342)
评论(0)
推荐(0)
摘要:
IJReachability是一个使用Swift写的第三方网络检测类。可以测试网络是否连接,并支持3G和Wifi的检测。 使用样例:1234567891011121314151617181920212223242526272829303132333435import UIKitclass ViewC... 阅读全文
posted @ 2015-09-28 10:33
brave-sailor
阅读(571)
评论(0)
推荐(0)
摘要:
1,CAKeyframeAnimation介绍CAKeyframeAnimation可以实现关键帧动画,这个类可以实现某一属性按照一串的数值进行动画,就像是一帧一帧的制作出来一样。2,使用样例(设置五个关键点坐标,图片依次按关键点移动)12345678910111213141516171819202... 阅读全文
posted @ 2015-09-28 10:29
brave-sailor
阅读(434)
评论(0)
推荐(0)
摘要:
1,CABasicAnimation类只有三个属性: fromValue:开始值 toValue:结束值 Duration:动画的时间2,通过animationWithKeyPath键值对的方式设置不同的动画效果 transform.scale transform.scale.x transform... 阅读全文
posted @ 2015-09-28 10:28
brave-sailor
阅读(875)
评论(1)
推荐(0)
摘要:
设置视图对象的transform属性,可以实现各种动画效果。1,移动指在同一平面内,将控件按照某个直线方向平移一定的距离。12345//每次都从当前位置平移self.imageView.transform = CGAffineTransformTranslate(self.imageView.tra... 阅读全文
posted @ 2015-09-28 10:25
brave-sailor
阅读(722)
评论(0)
推荐(0)
摘要:
Media Player框架用于播放本地视频、音频,也可以在线播放视频和音频。1,播放器MPMovieControlStyle样式有如下几种:(1)None: 没有播放控制控件(2)Embedded:嵌入式播放控件。没有Done按钮(3)FullScreen:全屏播放,有播放进度、Done按钮和快... 阅读全文
posted @ 2015-09-28 10:19
brave-sailor
阅读(1350)
评论(0)
推荐(0)
摘要:
CATransition动画主要在过渡时使用,比如两个页面层级改变的时候添加一个转场效果。CATransition分为两类,一类是公开的动画效果,一类是非公开的动画效果。 1,公开动画效果:kCATransitionFade:翻页kCATransitionMoveIn:弹出kCATransition... 阅读全文
posted @ 2015-09-28 10:19
brave-sailor
阅读(1010)
评论(0)
推荐(0)
摘要:
1,技术介绍(1)AVFoundation.framework框架提供了AVAudioRecorder类。它可以实现录音功能。(2)而使用该框架的AVAudioPlayer类,可以实现声音的播放。2,下面制作一个录音机样例(1)按住录音按钮则开始录音,松开则停止录音。录音文件保存在用户文件夹下。(2... 阅读全文
posted @ 2015-09-28 10:06
brave-sailor
阅读(678)
评论(0)
推荐(0)
摘要:
1,系统声音服务介绍:系统声音服务提供了一个Api,用于播放不超过30秒的声音。它支持的文件格式有限,具体的说只有CAF、AIF和使用PCM或IMA/ADPCM数据的WAV文件。但此函数没有提供操作声音和控制音量的功能,因此如果是要为多媒体或游戏创建专门声音,就不要使用系统声音服务。2,系统声音服务... 阅读全文
posted @ 2015-09-28 10:05
brave-sailor
阅读(869)
评论(0)
推荐(0)
摘要:
1,UIImagePickerController介绍(1)选择相册中的图片或者拍照,都是通过UIImagePickerController控制器实例化一个对象,然后通过self.presentViewController方法推送出界面显示。(2)使用presentViewController的类... 阅读全文
posted @ 2015-09-28 10:04
brave-sailor
阅读(780)
评论(0)
推荐(0)
摘要:
1,打开相机拍照通过设置图片控制器UIImagePickerController的来源为UIImagePickerControllerSourceType.Camera,便可以打开相机12345678910111213141516171819202122232425262728293031impor... 阅读全文
posted @ 2015-09-28 10:04
brave-sailor
阅读(618)
评论(0)
推荐(0)
摘要:
对于开发者而言,涉及iCloud存储的功能主要有两个:一是 iCloud documnet storage,利用 iCloud 存储用户文件,比如保存一些用户在使用应用时生成的文件以及数据库文件等。二是 iCloud key-value data storage,利用 iCloud 存储键值对,主... 阅读全文
posted @ 2015-09-28 10:03
brave-sailor
阅读(671)
评论(0)
推荐(0)
摘要:
一,Core Data介绍1,Core Data是iOS5之后才出现的一个数据持久化存储框架,它提供了对象-关系映射(ORM)的功能,即能够将对象转化成数据,也能够将保存在数据库中的数据还原成对象。2,虽然其底层也是由类似于SQL的技术来实现,但我们不需要编写任何SQL语句,有点像Java开发中的H... 阅读全文
posted @ 2015-09-28 09:59
brave-sailor
阅读(604)
评论(0)
推荐(0)
摘要:
当前位置: 首页 > 编程社区 > Swift > Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等) Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)2015-06-15 16:06 发布:yuhang 浏览:207 iOS应用程序只能在自己的目录... 阅读全文
posted @ 2015-09-28 09:58
brave-sailor
阅读(437)
评论(0)
推荐(0)
摘要:
通过UIApplication.sharedApplication().openURL()方法,可以使用浏览器打开相应的网页。123var urlString = "http://hangge.com"var url = NSURL(string: urlString)UIApplication.s... 阅读全文
posted @ 2015-09-28 09:56
brave-sailor
阅读(658)
评论(0)
推荐(0)
摘要:
要设置单元格cell的间距(水平间距,垂直间距)可进行如下设置:方法1:在storyboard中设置选择Collection View后在面板里设置Min Spacing相关属性(这里也可以设置单元格大小)方法2:在代码里设置12345678910111213import UIKitclass Vi... 阅读全文
posted @ 2015-09-28 09:55
brave-sailor
阅读(1032)
评论(0)
推荐(0)
摘要:
1,ALAssetsLibrary介绍(1)通过创建ALAssetsLibrary的实例可以访问系统Photos里的图片与视频。这里图片不仅包括相机拍摄的照片,还包括从iTunes导入的和从其他设备里面导入的图片。(2)从ALAssetsLibrary实例中获取得到的对象的生命周期和ALAsset... 阅读全文
posted @ 2015-09-28 09:55
brave-sailor
阅读(576)
评论(0)
推荐(0)
摘要:
由于iOS系统的封闭性,在数据传输方面十分不方便。不像安卓设备,直接连接电脑就能当U盘使用。所以一般我们如果用iPhone临时存取个东西,要么使用数据线连接iTunes,要么手机电脑都登上QQ,使用QQ来传输。但这两种方式都略显不便,所以市面上出现了无线U盘这类的APP。原理很简单,就是软件打开后... 阅读全文
posted @ 2015-09-28 09:54
brave-sailor
阅读(991)
评论(0)
推荐(0)
摘要:
ALAsset类代表相册中的每个资源文件,可以通过它获取照片的相关信息,及其对应的原图,全屏图,缩略图等。当我们想通过一个照片的ALAsset对象,来获取这张照片的原图并将其转换成NSData数据,有如下两种方法:方法一:将其转换成UIImage对象,再通过UIImageJPEGRepresenta... 阅读全文
posted @ 2015-09-28 09:53
brave-sailor
阅读(1643)
评论(0)
推荐(0)
摘要:
通过调用微信提供的API接口,我们可以很方便的在应用中发送消息给微信好友,或者分享到朋友圈。在微信开发平台(https://open.weixin.qq.com)里,提供了详细的说明文档和样例。但由于提供的样例是使用Objective-C写的,所以这边我写了个Swift版的样例。1,实现的功能(1)... 阅读全文
posted @ 2015-09-28 09:51
brave-sailor
阅读(1494)
评论(0)
推荐(0)
摘要:
下面是一个列表单元格cell的折叠展开效果的demo。当点击单元格时会展开该单元格,便于显示一些详情什么的。点击其他单元格原来的会关闭,同时有动画效果。效果如如下:代码如下:123456789101112131415161718192021222324252627282930313233343536... 阅读全文
posted @ 2015-09-28 09:50
brave-sailor
阅读(1236)
评论(0)
推荐(0)
摘要:
在Swift开发中,如果我们需要保持客服端和服务器的长连接进行双向的数据通信,使用socket是一种很好的解决方案。下面通过一个聊天室的样例来演示socket通信,这里我们使用了一个封装好的socket库(SwiftSocket)。功能如下:1,程序包含服务端和客服端,这里为便于调试把服务端和客服端... 阅读全文
posted @ 2015-09-28 09:50
brave-sailor
阅读(2916)
评论(0)
推荐(0)
摘要:
像iOS中的通讯录,通过点击联系人表格右侧的字母索引,我们可以快速定位到以该字母为首字母的联系人分组。要实现索引,我们只需要两步操作:(1)实现索引数据源代理方法(2)响应点击索引触发的代理事件效果图如下:代码如下:12345678910111213141516171819202122232425... 阅读全文
posted @ 2015-09-28 09:49
brave-sailor
阅读(828)
评论(0)
推荐(0)
摘要:
1,下面的样例是给表格UITableView添加单元格移动功能:(1)给表格添加长按功能,长按后表格进入编辑状态(2)在编辑状态下,可以看到单元格后面出现拖动按钮(3)鼠标按住拖动按钮,可以拖动单元格到任意位置(4)拖动完毕后,还会触发TabelView对应的代理事件2,效果图如下:3,代码如下12... 阅读全文
posted @ 2015-09-28 09:48
brave-sailor
阅读(730)
评论(0)
推荐(0)
摘要:
UITableView具有var tableHeaderView:UIView?属性和var tableFooterView:UIView?属性,可以通过给其赋值来创建列表TableView的页眉和页脚。效果图如下:代码如下:123456789101112131415161718192021222... 阅读全文
posted @ 2015-09-28 09:48
brave-sailor
阅读(336)
评论(0)
推荐(0)
摘要:
iOS开发UI篇—UIScrollView控件介绍一、知识点简单介绍1.UIScrollView控件是什么?(1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限(2)当展⽰示的内容较多,超出⼀一个屏幕时,⽤用户可通过滚动⼿手势来查看屏幕以外的内容(3)普通的UIVie... 阅读全文
posted @ 2015-09-28 00:14
brave-sailor
阅读(360)
评论(0)
推荐(0)

浙公网安备 33010602011771号