随笔分类 - Swift语言
摘要:在Swift中,可以使用函数类型的参数,也可以使用函数类型的返回值。而作为返回值的函数,还能“捕获”外部的值,并多次使用它。这个特性,常可用来创建各种生成器。下面通过创建一个“随机数生成器函数”作为演示:在指定范围内生成随机数,同时每次生成的随机数都不重复。123456789101112131415...
阅读全文
摘要:闭包(即一些小的匿名代码块),可以像函数一样使用。可以很方便的将闭包传给其他函数,告诉它们应当如何执行某一个任务。1,使用sort方法和闭包进行数组排序sort方法返回一个数组的有序版本。(sort方法即为Swift2.0之前的sorted方法。而原来的sort方法改名为sortInPlace,用来...
阅读全文
摘要:自Swift1.1开始,初始化init方法便有返回nil的能力。我们可以在init声明的时候在其后面加上一个 ? 或者 ! 来表示初始化失败时可能返回nil。比如,给Int类添加一个将字符串初始化成数字的init方法。1234567891011121314extension Int {init?(f...
阅读全文
摘要:我前面写了篇文章讲解如何给图片添加文字水印,而如果想要添加图片类型的水印也很简单,只要把原来代码里添加文字的部分改成图片即可。1,效果图如下:(在图片左上角添加了一个半透明的logo图片)2,为方便使用,我们通过扩展UIImage类来实现添加图片水印功能(水印图片透明度,位置,边距都可以设置)12...
阅读全文
摘要:通常我们可以使用16进制的格式表示RGB颜色,比如0x2f88c0。通过位操作运算,能很方便的将其中的R,G,B颜色各部分分别提取出来。反之,也可以将R,G,B颜色值组合成一个完整的颜色。1,提取颜色的组成部分1234var color:uint = 0x445577var r:uint = col...
阅读全文
摘要:想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能。1,效果图如下:(在图片左上角和右下角都添加了文字。)2,为方便使用,我们通过扩展UIImage类来实现添加水印功能(文字大小,文字颜色,背景色,位置,边距都可以设置)12345678910111213141516171819...
阅读全文
摘要:类似于PS,Swift中也可对图片UIImage进行图层混合(blending),而且提供了相当丰富的混合模式(blendMode)。本文先介绍使用其中的kCGBlendModeDestinationIn实现图片颜色的修改。1,扩展UIImage,添加着色方法首先为便于blending,我们扩展系统...
阅读全文
摘要:final关键字在大多数的编程语言中都存在,表示不允许对其修饰的内容进行继承或者重新操作。Swift中,final关键字可以在class、func和var前修饰。通常大家都认为使用final可以更好地对代码进行版本控制,发挥更佳的性能,同时使代码更安全。下面对这些说法做个总结。1,想通过使用fin...
阅读全文
摘要:过去Swift要实现单例,无非是这三种方式:全局变量,内部变量和dispatch_once方式。但都略显繁琐。后来从1.2版本起,Swift中添加了如 static let 和 static var 这样的类变量的支持,这样单例的实现又简化了许多。下面提供两种比较好的单例写法。(要注意:不管哪种写法...
阅读全文
摘要:String是Swift里新增加的类型,它与原来的NSString可以很方便地互相转换。但在实际开发中,我们该如何选择?1,能使用String类型就尽量使用String类型,原因如下:(1)现在Cocoa里所有的API都能接受和返回String类型,所以也没必要特地转换下。(2)Swift的Stri...
阅读全文
摘要:Swift虽然是一个新出的语言,但却不提供专门的处理正则的语法和类。所以我们只能使用古老的NSRegularExpression类进行正则匹配。即先接受一个正则表达式的字符串,由此生成NSRegularExpression对象,再用该对象来匹配输入字符串,返回匹配结果。1,为便于使用,先定义一个正则...
阅读全文
摘要:我原来写过一篇文章“Swift - 带结果列表的搜索条(UISearchDisplayController)的用法”,当时是使用UISearchDisplayController来实现带有搜索功能的列表,由于UISearchDisplayController本身就整合了搜索条和表格,所有用起来很方便...
阅读全文
摘要:使用UILocalNotification除了可以实现本地消息的推送功能(可以设置推送内容,推送时间,提示音),还可以设置应用程序右上角的提醒个数。下面演示如何设置,效果图如下:--- AppDelegate.swift ---123456789101112131415161718192021222...
阅读全文
摘要:项目创建后,AppDelegate类中默认带有如下几个方法,具体功能如下:1,应用程序第一次运行时执行这个方法只有在App第一次运行的时候被执行过一次,每次App从后台激活时都不会再执行该方法。(注:所有一般我们都在这里获取用户许可,比如本地消息推送的许可等)1234func application...
阅读全文
摘要:在Xcode中我们可以很方便的将APP适配各种本地化语言。苹果的框架已经帮我们把不同语言的数据分离开,包括图片,声音,视频,文档,用户界面文字(甚至代码中编写的用户界面文字),它们会被建立在同一个bundle中,便于我们管理。下面分别介绍字符串,图片,应用程序名是如何实现多语言本地化,以及如何切换语...
阅读全文
摘要:要实现打电话功能,最简单最直接的方式便是:直接跳到拨号界面 (注意:这个需要真机调试,模拟器无效果)12//自动打开拨号页面并自动拨打电话UIApplication.sharedApplication().openURL(NSURL(string :"tel://123456")!)
阅读全文
摘要:使用MessageUI.framework框架可以实现短信发送功能,步骤如下:(1)首先判断设备是否有发送短信功能(2)如果设备允许发送短信,创建一个MFMessageComposeViewController视图控制器,并对其设置短信内容和收件人号码列表。(3)短信发送后,会执行回调代理方法,可以...
阅读全文
摘要:使用MessageUI.framework框架除了可以发送短信,还能发送Email,步骤如下:(1)首先判断设备是否有发送邮件功能(2)如果设备允许发送邮件,创建一个MFMailComposeViewController视图控制器,并对其设置邮件标题,正文内容,收件人,附件等。(3)邮件发送后,会执...
阅读全文
摘要:1,通讯录访问介绍通讯录(或叫地址簿,电话簿)是一个数据库,里面储存了联系人的相关信息。要实现访问通讯录有如下两种方式:(1)AddressBook.framework框架 : 没有界面,通过代码来获取所有联系人信息(本文样例使用此方式)(2)AddressBookUI.framework框架 : ...
阅读全文
摘要:使用AddressBook.framework框架,我们除了可以很方便的获取通信录里的联系人。同时,还能对通讯录进行新增、修改、删除联系人操作。(注意:这些操作同查询一样,首先需要发起授权请求)1,添加新联系人123456789101112131415161718192021222324252627...
阅读全文