09 2015 档案
摘要:这是一种可以创建多线程消息的函数使用方法:1,首先创建一个Handler对象Handler handler=new Handler();2,然后创建一个Runnable对象Runnable runnable=new Runnable(){ @Override public void run() { ...
阅读全文
摘要:上一篇文章讲到了广播之前系统需要进行的准备工作,那接下来我们就来真正的启动广播。首先还是先看一下上一篇文章结束的地方:@Override public void onClientRegistered(int status, int clientIf) { Log.d(TAG, "onCl...
阅读全文
摘要:转载请表明作者:http://blog.csdn.net/lansefeiyang08/article/details/46482073昨天写了android L BLE Peripheral的简单使用,今天讲一下BLE Central的更新。搞过android4.4的人肯定对BluetoothAd...
阅读全文
摘要:前面讲了如何让程序申请后台短时运行。但这个额外延长的时间毕竟有限。所以从iOS7起又引入两种在后台运行任务的方式:后台获取和后台通知。1,后台获取介绍后台获取(Background Fetch)是为了那些需要定期更新的应用程序设计的,比如天气应用,新闻客户端,社交网络应用程序等。在启动后台获取之后,...
阅读全文
摘要:1,程序的挂起和退出由于iOS设备资源有限。当用户点击了home键,或者另一个应用程序启动了。那么原先那个程序便进入后台被挂起,不是退出,只是停止执行代码,同时它的内存被锁定。当应用程序恢复时,它会从停止的位置重新开始。2,如下特殊的应用程序可以在后台长时间的运行(1)在后台播放音频的应用程序可以在...
阅读全文
摘要:1,委托的说明委托(delegate)是Cocoa的一个术语,表示将一个对象的部分功能转交给另一个对象。比如对象A希望对象B知道将要发生或已经发生某件事情,对象A可以把对象B的引用存为一个实例变量。这个对象B称为委托。当事件发生时,它检查委托对象是否实现了与该事件相适应的方法。如果已经实现,则调用该...
阅读全文
摘要:在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...
阅读全文
摘要:1,通讯录访问介绍通讯录(或叫地址簿,电话簿)是一个数据库,里面储存了联系人的相关信息。要实现访问通讯录有如下两种方式:(1)AddressBook.framework框架 : 没有界面,通过代码来获取所有联系人信息(2)AddressBookUI.framework框架 : 通过系统提供的通讯录交...
阅读全文
摘要:通过使用MapKit可以将地图嵌入到视图中,MapKit框架除了可以显示地图,还支持在地图上做标记。1,通过mapType属性,可以设置地图的显示类型MKMapType.Standard :标准地图MKMapType.Satellite:卫星地图MKMapType.Hybrid :混合地图2,地图...
阅读全文
摘要:通过CoreLocation类,得到的定位信息都是以经度和纬度等表示的地理信息,通过CLGeocoder类可以将其反编码成一个地址。反之,也可根据一个地址获取经纬度。1,通过经纬度获取地址12345678910111213141516171819202122232425262728293031323...
阅读全文
摘要:CoreLocation这个定位框架除了可以获取设备的位置数据,还可以获取设备的方向(可以用来实现指南针功能等)。1,CLHeading对象通过一组属性提供航向相关数据:magneticHeading :磁极方向(磁北对应于随时间变化的地球磁场极点)trueHeading :真实方向(真北始终指向地...
阅读全文
摘要:CoreLocation是iOS中一个提供设备定位的框架。通过这个框架可以实现定位处理,从而获取位置数据,比如经度、纬度、海拔信息等。1,定位精度的设置定位服务管理类CLLocationManager的desiredAccuracy属性表示精准度,有如下6种选择:kCLLocationAccurac...
阅读全文
摘要:摇晃手机也是一种常用的交互手段(比如微信摇一摇功能)。iOS SDK中已经将shake事件方便地融合进去了,就像触发touch事件一样简单,发生摇晃事件后程序会自动执行。1234567891011121314151617181920212223import UIKitclass ViewContro...
阅读全文
摘要:通过UIDevice.currentDevice()来获取设备,可以取得设备当前的方向。同时,我们可以添加一个通知来监听设备方向的变化,这样在开发中可以对不同的方向定制不同的排版布局界面。下面通过一个样例,演示如何监测设备方向:123456789101112131415161718192021222...
阅读全文
摘要:NSURLSession类支持三种类型的任务:加载数据、下载和上传。下面通过样例分别进行介绍。1,使用Data Task加载数据使用全局的sharedSession()和dataTaskWithRequest方法创建。1234567891011121314151617181920212223fun...
阅读全文
摘要:使用NSURLConnection可以实现http通信。它提供了异步请求和同步请求两种通信方式。注意:同步请求数据会造成主线程阻塞,必须请求结束后用户才能做其他的操作,所有通常在请求大数据或者网络不畅时不建议使用。同步请求样例:1234567891011121314151617181920//创建N...
阅读全文
摘要:IJReachability是一个使用Swift写的第三方网络检测类。可以测试网络是否连接,并支持3G和Wifi的检测。 使用样例:1234567891011121314151617181920212223242526272829303132333435import UIKitclass ViewC...
阅读全文
摘要:1,CAKeyframeAnimation介绍CAKeyframeAnimation可以实现关键帧动画,这个类可以实现某一属性按照一串的数值进行动画,就像是一帧一帧的制作出来一样。2,使用样例(设置五个关键点坐标,图片依次按关键点移动)12345678910111213141516171819202...
阅读全文
摘要:1,CABasicAnimation类只有三个属性: fromValue:开始值 toValue:结束值 Duration:动画的时间2,通过animationWithKeyPath键值对的方式设置不同的动画效果 transform.scale transform.scale.x transform...
阅读全文
摘要:设置视图对象的transform属性,可以实现各种动画效果。1,移动指在同一平面内,将控件按照某个直线方向平移一定的距离。12345//每次都从当前位置平移self.imageView.transform = CGAffineTransformTranslate(self.imageView.tra...
阅读全文
摘要:Media Player框架用于播放本地视频、音频,也可以在线播放视频和音频。1,播放器MPMovieControlStyle样式有如下几种:(1)None: 没有播放控制控件(2)Embedded:嵌入式播放控件。没有Done按钮(3)FullScreen:全屏播放,有播放进度、Done按钮和快...
阅读全文
摘要:CATransition动画主要在过渡时使用,比如两个页面层级改变的时候添加一个转场效果。CATransition分为两类,一类是公开的动画效果,一类是非公开的动画效果。 1,公开动画效果:kCATransitionFade:翻页kCATransitionMoveIn:弹出kCATransition...
阅读全文
摘要:1,技术介绍(1)AVFoundation.framework框架提供了AVAudioRecorder类。它可以实现录音功能。(2)而使用该框架的AVAudioPlayer类,可以实现声音的播放。2,下面制作一个录音机样例(1)按住录音按钮则开始录音,松开则停止录音。录音文件保存在用户文件夹下。(2...
阅读全文
摘要:1,系统声音服务介绍:系统声音服务提供了一个Api,用于播放不超过30秒的声音。它支持的文件格式有限,具体的说只有CAF、AIF和使用PCM或IMA/ADPCM数据的WAV文件。但此函数没有提供操作声音和控制音量的功能,因此如果是要为多媒体或游戏创建专门声音,就不要使用系统声音服务。2,系统声音服务...
阅读全文
摘要:1,UIImagePickerController介绍(1)选择相册中的图片或者拍照,都是通过UIImagePickerController控制器实例化一个对象,然后通过self.presentViewController方法推送出界面显示。(2)使用presentViewController的类...
阅读全文
摘要:1,打开相机拍照通过设置图片控制器UIImagePickerController的来源为UIImagePickerControllerSourceType.Camera,便可以打开相机12345678910111213141516171819202122232425262728293031impor...
阅读全文
摘要:对于开发者而言,涉及iCloud存储的功能主要有两个:一是 iCloud documnet storage,利用 iCloud 存储用户文件,比如保存一些用户在使用应用时生成的文件以及数据库文件等。二是 iCloud key-value data storage,利用 iCloud 存储键值对,主...
阅读全文
摘要:一,Core Data介绍1,Core Data是iOS5之后才出现的一个数据持久化存储框架,它提供了对象-关系映射(ORM)的功能,即能够将对象转化成数据,也能够将保存在数据库中的数据还原成对象。2,虽然其底层也是由类似于SQL的技术来实现,但我们不需要编写任何SQL语句,有点像Java开发中的H...
阅读全文
摘要:当前位置: 首页 > 编程社区 > Swift > Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等) Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)2015-06-15 16:06 发布:yuhang 浏览:207 iOS应用程序只能在自己的目录...
阅读全文
摘要:通过UIApplication.sharedApplication().openURL()方法,可以使用浏览器打开相应的网页。123var urlString = "http://hangge.com"var url = NSURL(string: urlString)UIApplication.s...
阅读全文
摘要:要设置单元格cell的间距(水平间距,垂直间距)可进行如下设置:方法1:在storyboard中设置选择Collection View后在面板里设置Min Spacing相关属性(这里也可以设置单元格大小)方法2:在代码里设置12345678910111213import UIKitclass Vi...
阅读全文
摘要:1,ALAssetsLibrary介绍(1)通过创建ALAssetsLibrary的实例可以访问系统Photos里的图片与视频。这里图片不仅包括相机拍摄的照片,还包括从iTunes导入的和从其他设备里面导入的图片。(2)从ALAssetsLibrary实例中获取得到的对象的生命周期和ALAsset...
阅读全文
摘要:由于iOS系统的封闭性,在数据传输方面十分不方便。不像安卓设备,直接连接电脑就能当U盘使用。所以一般我们如果用iPhone临时存取个东西,要么使用数据线连接iTunes,要么手机电脑都登上QQ,使用QQ来传输。但这两种方式都略显不便,所以市面上出现了无线U盘这类的APP。原理很简单,就是软件打开后...
阅读全文
摘要:ALAsset类代表相册中的每个资源文件,可以通过它获取照片的相关信息,及其对应的原图,全屏图,缩略图等。当我们想通过一个照片的ALAsset对象,来获取这张照片的原图并将其转换成NSData数据,有如下两种方法:方法一:将其转换成UIImage对象,再通过UIImageJPEGRepresenta...
阅读全文
摘要:通过调用微信提供的API接口,我们可以很方便的在应用中发送消息给微信好友,或者分享到朋友圈。在微信开发平台(https://open.weixin.qq.com)里,提供了详细的说明文档和样例。但由于提供的样例是使用Objective-C写的,所以这边我写了个Swift版的样例。1,实现的功能(1)...
阅读全文
摘要:下面是一个列表单元格cell的折叠展开效果的demo。当点击单元格时会展开该单元格,便于显示一些详情什么的。点击其他单元格原来的会关闭,同时有动画效果。效果如如下:代码如下:123456789101112131415161718192021222324252627282930313233343536...
阅读全文
摘要:在Swift开发中,如果我们需要保持客服端和服务器的长连接进行双向的数据通信,使用socket是一种很好的解决方案。下面通过一个聊天室的样例来演示socket通信,这里我们使用了一个封装好的socket库(SwiftSocket)。功能如下:1,程序包含服务端和客服端,这里为便于调试把服务端和客服端...
阅读全文
摘要:像iOS中的通讯录,通过点击联系人表格右侧的字母索引,我们可以快速定位到以该字母为首字母的联系人分组。要实现索引,我们只需要两步操作:(1)实现索引数据源代理方法(2)响应点击索引触发的代理事件效果图如下:代码如下:12345678910111213141516171819202122232425...
阅读全文
摘要:1,下面的样例是给表格UITableView添加单元格移动功能:(1)给表格添加长按功能,长按后表格进入编辑状态(2)在编辑状态下,可以看到单元格后面出现拖动按钮(3)鼠标按住拖动按钮,可以拖动单元格到任意位置(4)拖动完毕后,还会触发TabelView对应的代理事件2,效果图如下:3,代码如下12...
阅读全文
摘要:UITableView具有var tableHeaderView:UIView?属性和var tableFooterView:UIView?属性,可以通过给其赋值来创建列表TableView的页眉和页脚。效果图如下:代码如下:123456789101112131415161718192021222...
阅读全文
摘要:iOS开发UI篇—UIScrollView控件介绍一、知识点简单介绍1.UIScrollView控件是什么?(1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限(2)当展⽰示的内容较多,超出⼀一个屏幕时,⽤用户可通过滚动⼿手势来查看屏幕以外的内容(3)普通的UIVie...
阅读全文
摘要:1,UIView常用的一些属性如下:frame:相对父视图的坐标和大小(x,y,w,h)bounds:相对自身的坐标和大小,所以bounds的x和y永远为0(0,0,w,h)center:相对父视图的中点坐标transform:控制视图的放大缩小和旋转superview:获取父视图subviews:...
阅读全文
摘要:UISreen类代表了屏幕,开发中一般用来获取屏幕相关的属性,例如获取屏幕的大小。1234567//获取屏幕大小var screenBounds:CGRect = UIScreen.mainScreen().boundsprintln(screenBounds) //iPhone6输出:(0.0,0...
阅读全文
摘要:在过去只有iphone4的时候,可以在代码里将一个可视单元的位置写死,这样是没问题的,但随着iPhone5,6的发布,屏幕尺寸有了越来越多种可能。这就要求App的UI控件具有在不同屏幕尺寸的设备上具有一定动态的可调性,实现较好的UI展示效果。 结合使用Auto Layout和Size Classe...
阅读全文
摘要:1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术:(1)NSThread(2)Cocoa NSOperation(NSOperation和NSOperationQueue)(3)Grand Central Dispath(GCD)2,本文着重介绍Grand Central...
阅读全文
摘要:1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术:(1)NSThread(2)Cocoa NSOperation(NSOperation和NSOperationQueue)(3)Grand Central Dispath(GCD)2,本文着重介绍Cocoa NSOpera...
阅读全文
摘要:1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术:(1)NSThread(2)Cocoa NSOperation(NSOperation和NSOperationQueue)(3)Grand Central Dispath(GCD)2,本文着重介绍NSThreadNSTr...
阅读全文
摘要: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方法内将文本框的代理...
阅读全文
摘要:下面通过一个例子将联系人数据保存到沙盒的“documents”目录中。(联系人是一个数组集合,内部为自定义对象)。功能如下:1,点击“保存”将联系人存入userList.plist文件中2,点击“读取”从数据文件中加载解析出联系人注意:1,本例使用了NSCoder,这个封装了许多技术细节,使用它我们...
阅读全文
摘要:项目创建完毕后,默认是使用ViewController作为主界面视图。下面通过样例演示,如何使用TableViewController作为主界面视图,同时演示如何在storyboard中设置表格及内部单元格样式。功能如下:1,程序运行后即为表格页面2,表格内容为“行号:内容”3,点击单元格可以切换勾...
阅读全文
摘要:在开发中,经常需要用到协议代理模式。比如,进入编辑页面修改数据后,将新数据回传到主界面。下面通过一个样例来说明协议代理模式,功能如下:1,主页面有一个标签和一个修改按钮,点击修改按钮会跳转到编辑页面2,编辑页面中修改输入框的文字后,点击“确定”则返回主页面,同时主页面的标签值会替换成新值3,如果点...
阅读全文
摘要:下面的一个样例是让tableView显示数据的时候具有一个很炫的3D缩放效果。我们只需要实现tableView的willDisplayCell方法。看方法名就知道这是在Cell将要显示的时候执行的方法。1234567891011//设置cell的显示动画func tableView(tableVie...
阅读全文
摘要:使用MPMoviePlayerController我们可以是进行音乐播放,下面是一个播放器样例。同时,播放时还可以显示播放时间和播放进度。123456789101112131415161718192021222324252627282930313233343536373839404142434445...
阅读全文
摘要:使用NSURLConnection.sendAsynchronousRequest()可以采用异步获取的方式取得数据。下面通过对数据获取类进行封装,演示如何进行数据请求与接收。1,HttpController.swift (数据获取封装类,结果处理协议)12345678910111213141516...
阅读全文
摘要:下面是一个异步请求加载图片数据的样例1234567891011//定义NSURLlet imgURL:NSURL=NSURL(string:"http://hangge.com/blog/images/logo.png")!//定义NSURLRequestlet request:NSURLReque...
阅读全文
摘要:1,图片左中右三宫格缩放形式 //左右14像素不变形,中间缩放let imgTrackRight = UIImage(named:"slider_max")let imgRight = imgTrackRight!.stretchableImageWithLeftCapWidth(14, topCa...
阅读全文
摘要:除了使用storyboard外,我们还可以使用xib来设计并创建页面。1,下面通过一个样例来演示:(1)点击主界面的“信息”按钮,页面切换到信息界面(2)点击信息界面的“返回”,关闭信息界面,回到主界面2,UIModalTransitionStyle有四种跳转方式:(1)CoverVertical:...
阅读全文
摘要:1,直接截去小数部分转换成整数使用强制转换会将浮点部分去除,把整数部分转换为整数。1var i = Int(23.50) //232,四舍五入转换成整数lroundf是一个全局函数,作用是将浮点数四舍五入转为整数。1var i = lroundf(23.50) //24
阅读全文
摘要:1,运行时横屏将项目属性“General”->“DeviceOritentation”的Portrait复选框去掉2,storyboard设计视图横屏在storyboard中,单击中间界面视图的头部,在右侧属性面板中。把Size设置为iPhone4-inch(4寸屏,也可以选择其他屏幕尺寸)把Ori...
阅读全文
摘要:Swift中,除了条形进度条外,还有环形进度条,效果图如下:1,环形进度条的基本属性(1)Style: Large White:比较大的白色环形进度条 White:白色环形进度条 Gray:灰色环形进度条(2)Color: 设置环形进度条的颜色(3)Behavior: Animating:勾选后环形...
阅读全文
摘要:与导航控制器(UINavigationController)同时实现导航条和页面切换功能不同。导航条(UINavgationBar)可以单独使用,添加至任何的UIView中。UINavigationBar比较重要的属性为,左侧按钮,中间的标题,以及右侧按钮。下面是一个使用样例,点击左侧加号会添加一个...
阅读全文
摘要:时间控制器NSTimer可以实现定时器功能,即每隔一定时间执行具体函数,可以重复也可以只执行一次。12345678910111213141516171819class ViewController: UIViewController {var timer:NSTimer!override func ...
阅读全文
摘要:通过类的计算属性set和get,我们可以对索引的加减进行保护。下面是一个样例,索引index初始值是0,有效范围是0~2。不管是index++还是index--,索引都是一直在这个范围能循环遍历。123456789101112131415161718192021222324class Test {v...
阅读全文
摘要:我们如果把文本框的Return Key设置成Done,然后在storyboard中将文本框的Did End On Exit事件在代码里进行关联。同时关联代码里调用文本框的resignFirstResponder()方法。就可以实现用户点击键盘return key时就关闭虚拟键盘。如果要实现当用户点...
阅读全文
摘要:1,下面是一个浮点类型的数字转成String字符串的例子12var f = 123.32342342var s:String = "\(f)" //123.323423422,如果要保留两位小数12var f = 123.32342342var s = String(format: "%.2f", ...
阅读全文
摘要:Swift中,如果要把字符串转换成数字类型(比如整型,浮点型等)。可以先转成NSString类型,让后再转。1234//将文本框中的值转换成数字var i = (tf1.text as NSString).intValuevar f = (tf1.text as NSString).floatVal...
阅读全文
摘要:如果想添加资源到项目中去,只要通过鼠标左键将文件或者存有文件的文件夹直接拖到Xcode中。当松开鼠标后会弹出如下面板:(1)勾上“Copy items if needed”就会拷贝文件进项目,否则只是引用(2)Create groups不会在项目中创建真实的文件夹。 而Create folder r...
阅读全文
摘要:除了基本运算符之外,Swift还支持位运算和位移运算,包括:1,按位取反运算:操作符是 ~2,按位与运算:操作符是 &3,按位或运算:操作符是 |4,按位异或运算:操作符是 ^5,按位左移/右移运算:操作符是 >
阅读全文
摘要:类型嵌套,简单来说实在一个类型中包含另外一个类型。我们拿一副扑克来说明。1234567891011121314151617181920212223//类型嵌套struct Poker{//花色枚举enum Suit:String{case Heart="红桃", Club="草花", Diamond...
阅读全文
摘要:在Swift中,通常使用is和as操作符来实现类型检查和转换。下面通过样例来演示使用方法,首先定义几个类。1234567891011//基类,人类class Human{}//男人类class Man:human{}//女人类class Woman:human{}1,is 用来做类型检查(注意:is...
阅读全文
摘要:1,AnyObject :代表任何class类型的对象实例。1234567891011121314151617class Man{}class Woman{}let man = Man()let woman = Woman()var arr:[AnyObject] = [man,woman]for...
阅读全文
摘要:可选类型是Swift的一个特色。它表示一个变量有可能有值,也可能没有值(nil)。声明的方式是“数据类型+问号”。而当要使用一个可选类型的变量是,要在后面加感叹号“!”。123456789var height:Int? //声明一个可选类型,默认值为nilif height == nill{prin...
阅读全文
摘要:在很多iOS产品或者一些应用版本的升级中,新手指导都是一个常用的功能,通过说明页的左右滑动,可以很清晰的展示系统的一些功能特性。制作思路如下:1,如何检测应用是第一次登陆启动我们可以使用NSUserDefaults类来解决这个问题。其特点是不会因应用的关闭、系统的重启而丢失。所以可以用来标记是否启...
阅读全文
摘要:在iOS开发中,UIGestureRecognizer可以方便的响应处理手势事件。而如果要想更精细的处理,我们还需要借助touchesBegan,touchesMoved,touchesEnded等触摸方法。这些方法 都是UIResponder中的方法。视图控制器和视图类,都是UIResponder...
阅读全文
摘要:点击项目,在General选项卡中的“Deployment Info”栏目中可以进行一些项目的配置Deployment Target:支持的iOS SDK的最低版本Device:所支持的设备(iPad或iPhone,或二者皆有)Device Orientation:设备的屏幕方向Status Bar...
阅读全文
摘要:一个应用,无论发布到App Store,还是安装到用户的屏幕上,都需要一个标志性的图标。同时,在应用启动时也要有个启动画面,否则启动时将会是纯黑的屏幕。1,在项目的“General”选项卡下的“App Icons and Launch Images”栏目中可以很方便的设置图标和启动画面,如下图:其实...
阅读全文
摘要:使用Swift进行iOS开发时,不可避免的要进行远程的数据获取和提交。 其数据请求的方式既可能是POST也可能是GET。同不管是POST还是GET又可以分为同步请求和异步请求。 下面通过四个例子来进行演示。1,使用POST方式提交数据(用户id和分数)(1)同步请求12345678910111213...
阅读全文
摘要:在iOS中,实现动画有两种方法。一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimations。这三个方法都是类方法。一,使用animateWithDuration来实现动画(1)此方法共有5个参数:duration:动画从开...
阅读全文
摘要:NSUserDefaults适合存储轻量级的本地客户端数据,比如记住密码功能,要保存一个系统的用户名、密码。使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息。一般来说本地存储数据我们还可以是用SQlite数据库,或者使用自己建立的...
阅读全文
摘要:在iOS游戏开发中,比如2048游戏。有时会需要存储N×N数组的数据模型(如3×3,4×4等)。这里我们演示了三种实现方式,分别是:一维数组、仿二维数组、自定义二维数组(即矩阵结构)。功能是根据传入维度初始化数组,同时提供设置值和打印输出所有值的功能,判断数组是否已满(全不为0),以及目前空位的坐标...
阅读全文
摘要:1,使用<<计算2的N次方12var value = 1<<4 //2的4次方var value = 1<<Int(arc4random_uniform(5)) //2的0~4随机次方(包括0,4)
阅读全文
摘要:在iOS开发中,页面里有时会大量的用到一些控件,如果要一个个单独创建再设置样式的话就显得很麻烦。我们可以创建一个生成各种控件的工厂类,这样在需要的时候调用下就可以了。下面以一个自定义的工厂类为例,其中提供了文本标签,按钮,文本输入框,分段单选控件的生成,效果图如下:工厂类:ViewFactory.s...
阅读全文
摘要:在iOS开发中,如果创建一个自定义的组件通常可以通过继承UIView来实现。下面以一个记分牌组件为例,演示了组件的创建和使用,以及枚举、协议等相关知识的学习。效果图如下:组件代码:ScoreView.swift12345678910111213141516171819202122232425262...
阅读全文
摘要:问题现象:想在页面初始化的时候,使用self.presentViewController方法弹出个告警提示框UIAlertController。但行后报了个如下告警,同时告警框也出不来。12015-03-10 09:55:34.197 Test[1140:29622] Warning: Attem...
阅读全文
摘要:1,下面是一个利用UIView来给页面上绘制灰色方块的例子,效果图如下:代码如下:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import UIKitcl...
阅读全文
摘要:自iOS8起,苹果就建议告警框使用UIAlertController来代替UIAlertView。下面总结了一些常见的用法:1,简单的应用(同时按钮响应Handler使用闭包函数)12345678910111213141516171819202122232425262728import UIKitc...
阅读全文
摘要:相比于Objective-C,Swift语言更加简练。有时我们需要把原来写的一些Objective-C代码转换成Swift,下面总结了各种常见的情况。1,构造函数的迁移Objective-C为:12HanggeMenuItem *starMenuItem1 = [[HanggeMenuItem a...
阅读全文
摘要:这个是一个第三方按钮菜单组件,原版是使用Objective-C编写的名为AwesomeMenu的组件,地址是:https://github.com/levey/AwesomeMenu这里改造成了Swift版,效果图如下:使用代码:12345678910111213141516171819202122...
阅读全文
摘要:一,使用自带的NSJSONSerialization苹果从IOS5.0后推出了SDK自带的JSON解决方案NSJSONSerialization,这是一个非常好用的JSON生成和解析工具,效率也比其他第三方开源项目高。NSJSONSerialization能将JSON转换成Foundation对象,...
阅读全文
摘要:问题现象:想在Xcode中把代码编译发布成ipa程序,但“Product”->“Archive”按钮一直不可使用。解决办法:目前的运行配置是使用模拟器,改成“iOS Device”即可
阅读全文
摘要:在做一些应用的时候经常需要用到XML解析,比如获取Web Service数据,读取RSS新闻或者博客数据源。下面演示了两个非常方便高效的XML库在Swift里的调用方法。假设需要被解析的XML数据文件users.xml如下:1234567891011121314151617 航歌123456702...
阅读全文
摘要:通过EventKit可以对iOS日历事件进行读取,添加等操作。但网上找到的都是使用Objective-C来编写的。下面提供一个Swift版的样例,演示如何添加一个事件以及获取所有的事件列表。1234567891011121314151617181920212223242526272829303132...
阅读全文
摘要:SQLite轻量级数据库在移动应用中使用非常普遍,但是目前的库是C编写的,为了方便使用,对SQLite相关的操作用Swift进行了封装。这个封装代码使用了一个开源项目SQLiteDB,地址是:https://github.com/fahimf/sqlitedb 重要事项:SQLiteBD原作者最后只...
阅读全文
摘要:在Swift项目中,我们可以导入任意用Objective-C写的框架,代码库等。下面以Swift调用Objective-C编写的颜色选择器KKColorListPicker为例。效果图如下:实现步骤:1,首先在项目里导入KKColorListPicker的源码(整个文件夹,在项目上有键“Add Fi...
阅读全文
摘要:UIActivity可以十分方便地将文字、图片等内容进行分享,比如分享到微信、微博、发送邮件、短信等等。我们不仅可以分享内容出来,也可以在自己的App里添加自己的分享按钮或隐藏已有的分享按钮来实现定制的功能。下面通过继承UIActivity实现定制按钮和功能,通过调用UIActivityViewCo...
阅读全文
摘要:1,分割视图控制器(UISplitViewController)在iPhone应用中,使用导航控制器由上一层界面进入下一层界面。但iPad屏幕较大,通常使用SplitViewController来实现导航(这个是iPad专用的视图控制器)。在横屏下,左侧显示一个 导航列表,点击后右边显示对应的详情...
阅读全文
摘要:故事板(UIStoryboard)可以很方便的进行界面的设计,下面总结了常用的几个操作方法:1,初始场景选中View Controller,在属性面板里勾选Is Initial View Controller复选框,即可设置为起始场景(前面会显示灰色的小箭头)2,将View Controller的尺...
阅读全文
摘要:1,比如rgb 色值为55、 186 、89 那么给UIColor设置里面要除以2551UIColor(red: 55/255, green: 186/255, blue: 89/255, alpha: 0.5)2,设置16进制颜色也同上1UIColor(red: 0x37/255, green: ...
阅读全文
摘要:1,使用UIColor的内置颜色设置背景色12var page = UIView()page.backgroundColor = UIColor.greenColor()2,设置自定义颜色1page.backgroundColor = UIColor(red: 0x37/255, green: 0x...
阅读全文
摘要:App底部的tab标签页可以方便的把功能模块划分清楚,只需点击相应的标签页就可以展示完全独立的视图页面,同时各标签页间的视图也可以进行数据交换。TabBarItem系统自带图标样式(System)介绍:Custom:自定义方式,配合Selected Image来自定义图标More:三个点的图标,表示...
阅读全文
摘要:使用页控件可以用来展示多个桌面。比如很多应用第一次登陆时,会在开始页面使用页控件来介绍功能,通过左右滑动来切换页。通常我们使用UIPageControl和UIScrollView相互结合来实现多页切换,滑动页面时页控件标签(即页面下方的小白点)会更新到对应的页面。而直接点击页标签时,滚动条也会滚到相...
阅读全文
摘要:网格UICollectionView除了使用流布局,还可以使用自定义布局。实现自定义布局需要继承UICollectionViewLayout,同时还要重载下面的三个方法:123456789101112// 这个方法返回每个单元格的位置和大小override func layoutAttributes...
阅读全文
摘要:下面代码可以遍历移除页面视图上的所有元件123456//清空所有子视图func clearViews() {for v in self.view.subviews as [UIView] {v.removeFromSuperview()}}
阅读全文
摘要:一、网格UICollectionView最典型的例子是iBooks。其主要属性如下:1,layout该属性表示布局方式,有Flow、Custom两种布局方式。默认是Flow流式布局。2,Accessories是否显示页眉和页脚3,各种尺寸属性Cell Size:单元格尺寸Header Size:页...
阅读全文
摘要:通过使用导航条(UINavigationBar)与导航条控制器(UINavigationController)可以方便的在主页面和多层子页面之间切换。下面通过一个简单“组件效果演示”的小例子来说明如何通过代码来进行页面的切换。功能如下:1,在AppDelagete.swift入口文件中把首页View...
阅读全文
摘要:1,搜索条Options属性还可设置如下功能样式:Shows Search Results Button:勾选后,搜索框右边显示一个圆形向下的按钮,单击会发送特殊事件。Shows Bookmarks Button:勾选后,搜索框右边会显示一个书本的按钮,单击会发送特殊事件。Shows Cancel...
阅读全文
摘要:(注:自iOS8起,苹果便废弃UISearchDisplayController的使用,改为使用UISearchController来实现类似功能,可参考我的另一篇文章“Swift - 使用UISearchController实现带搜索栏的表格”)UISearchDisplayController控...
阅读全文
摘要:有时我们需要通过代码自动将表格UITableView滚动条移动到尾部,只需要使用scrollToRowAtIndexPath方法即可,代码如下:12345var secon = 1 //最后一个分组的索引(0开始,如果没有分组则为0)var rows = 5 //最后一个分组最后一条项目的索引var...
阅读全文
摘要:1,下面是一个放微信聊天界面的消息展示列表,实现的功能有:(1)消息可以是文本消息也可以是图片消息(2)消息背景为气泡状图片,同时消息气泡可根据内容自适应大小(3)每条消息旁边有头像,在左边表示发送方,在右边表示接收方2,实现思路(1)需要定义一个数据结构保存消息内容MessageItem(2)继承...
阅读全文
摘要:1,下面的样例是给表格UITableView添加编辑功能:(1)给表格添加长按功能,长按后表格进入编辑状态(2)在编辑状态下,第一个分组处于删除状态,第二个分组处于插入状态(3)点击删除图标,删除对应条目(4)点击添加图标,插入一条新数据2,效果图 3,代码如下123456789101112131...
阅读全文
摘要:表格UITableView中,每一单元格都是一个UITableViewCell。其支持简单的自定义,比如在单元格的内部,添加图片和详细文本标签。 注意UITableViewCell的style:(1)UITableViewCellStyle.Default:默认的,只有一个常规内容标签和一个可选的U...
阅读全文
摘要:1,样例说明:(1)列表以分组的形式展示(2)同时还自定义分区的头部和尾部(3)点击列表项会弹出消息框显示该项信息。2,效果图: 3,代码如下:12345678910111213141516171819202122232425262728293031323334353637383940414243...
阅读全文
摘要:当前位置: 首页 > 编程社区 > Swift > Swift - 二进制,八进制,十六机制的表示方法 Swift - 二进制,八进制,十六机制的表示方法2015-01-23 14:47 发布:yuhang 浏览:181 整数各种进制的字面量如下:十进制数,没有前缀二进制数,前缀是0b八进制数,前缀...
阅读全文
摘要:1,UIBarButtonItem是工具条按钮,有如下5种init初始化方法:(1)初始化为普通图片按钮1234567891011121314151617181920212223242526272829303132333435363738394041class ViewController: UI...
阅读全文
摘要:1,样例说明:(1)列表内容从Controls.plist文件中读取,类型为Array。(2)点击列表项会弹出消息框显示该项信息。(3)按住列表项向左滑动,会出现删除按钮。点击删除即可删除该项。2,效果图 3,单元格复用机制:由于普通的表格视图中对的单元格形式一般都是相同的,所以本例采用了单元格复用...
阅读全文
摘要:使用网页控件(UIWebView)与工具栏控件(UIToolbar),我们可以自制一个小型的浏览器,其功能如下:1,输入网址,点击“Go”按钮加载网页2,加载过程中有进度条,同时可以点击停止按钮取消加载3,有页面刷新按钮4,有前进后退按钮效果图如下:代码如下:1234567891011121314...
阅读全文
摘要:使用UIWebView加载本地数据或资源有如下三种方式:1,使用loadHTMLString方法加载HTML内容2,使用loadRequest方法加载本地资源(也可用于加载服务器资源)3,先将内容保存成NSData数据,再使用loadData方法加载示例代码如下(通过UISegmentedCont...
阅读全文
摘要:如果使用UIDatePicker时将模式设置为CountDownTimer,即可让该控件作为倒计时器来使用。效果图如下:下面是代码示例:123456789101112131415161718192021222324252627282930313233343536373839404142434445...
阅读全文
摘要:UIGestureRecognizer有许多子类,用于监听一些常见的手势事件,这些子类主要有:1,UISwipeGestureRecognizer:滑动(快速移动)123456789101112131415161718class ViewController: UIViewController {o...
阅读全文
摘要:1,使用storyboard创建日期选择控件首先我们将一个UIDatePicker控件和一个按钮直接添加到Main.Storyboard上。该按钮是为了点击时弹出提示框显示当前选择的日期和时间。同时在ViewController.swift中使用IBOutlet建立起控件和事件的关联,具体代码如下...
阅读全文
摘要:1,加速传感器可以监听到x,y,z三个方向的加速度,使用步骤如下:(1)实例化CMMotionManager类(2)向CMMotionManager的accelerometerUpdateInterval属性中设置通知间隔时间值。(3)使用NSOperationQueue.currentQueue(...
阅读全文
摘要:1,当图片尺寸超过屏幕时,使用UIScrollView可以实现滚动条视图,即手指触摸滚动屏幕方便浏览整个页面。123456var scrollView=UIScrollView()scrollView.frame=self.view.boundsvar imageView=UIImageView(i...
阅读全文
摘要:UIScrollView提供了以页面为单位滚动显示各个子页面内容的功能,每次手指滑动后会滚动一屏的内容。要实现该功能,需要如下操作:1,将UIScrollView的pagingEnabled属性设置成true2,必须通过contentSize属性设置各个页面相加的宽度。比如iphone手机一屏宽度是...
阅读全文
摘要:1,选择框可以让用户以滑动的方式选择值。示例如下:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253import UIKitclass ViewContr...
阅读全文
摘要:1,微调器(UIStepper)控件包含两个按钮“+”和“-”,让使用者可以依照自己的喜欢做数值上的调整。1234567891011121314151617181920212223242526272829303132class ViewController: UIViewController {va...
阅读全文
摘要:1,下面代码创建并弹出一个告警框,并带有“取消”“确定”两个按钮(注:自IOS8起,建议使用UIAlertController)123456789101112131415161718192021222324class ViewController: UIViewController{override...
阅读全文
摘要:1,下面创建一个操作表(或叫底部警告框)并弹出显示 123456789101112131415161718class ViewController: UIViewController,UIActionSheetDelegate {override func viewDidLoad() {super....
阅读全文
摘要:1,使用图像控件显示图片123var imageView=UIImageView(image:UIImage(named:"icon"))imageView.frame=CGRectMake(10,10,100,100)self.view.addSubview(imageView)2,改变图片1i...
阅读全文
摘要:1,创建进度条1234var progressView=UIProgressView(progressViewStyle:UIProgressViewStyle.Default)progressView.center=self.view.centerprogressView.progress=0.5...
阅读全文
摘要:1,滑块的创建123456var slider=UISlider(frame:CGRectMake(0,0,300,50))slider.center=self.view.centerslider.minimumValue=0 //最小值slider.maximumValue=1 //最大值slid...
阅读全文
摘要:1,选择控件的创建,并监听控件选择值123456789101112131415161718192021class ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()//选项除了文字还可以...
阅读全文
摘要:1,多行文本控件的创建1234var textview=UITextView(frame:CGRectMake(10,100,200,100))textview.layer.borderWidth=1 //边框粗细textview.layer.borderColor=UIColor.grayCol...
阅读全文
摘要:下面演示如何创建开关,以及监听它值的改变,代码如下:12345678910111213141516171819class ViewController: UIViewController {var uiswitch:UISwitch!;override func viewDidLoad() {sup...
阅读全文
摘要:1,文本框的创建,有如下几个样式: UITextBorderStyle.None:无边框 UITextBorderStyle.Line:直线边框 UITextBorderStyle.RoundedRect:圆角矩形边框 UITextBorderStyle.Bezel:边线+阴影1234var te...
阅读全文
摘要:1,按钮的创建(1)按钮有下面四种类型: UIButtonType.ContactAdd:前面带“+”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果 UIButtonType.DetailDisclosure:前面带“!”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果 UIButtonType...
阅读全文
摘要:1,标签的创建12345678910import UIKitclass ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()//设置标签x坐标:10,y坐标:20,长:300,宽:100v...
阅读全文
摘要:ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现。下面总结了各种常用的操作:1,遍历一个目录下的所有文件123456789101112131415161718192021222324252627282930313...
阅读全文
摘要:Swift语言的类扩展是一个强大的工具,我们可以通过类扩展完成如下事情:1,给已有的类添加计算属性和计算静态属性2,定义新的实例方法和类方法3,提供新的构造器4,定义下标脚本5,是一个已有的类型符合某个协议(注意:扩展只能添加新的计算型属性,不能添加存储型属性,也不能添加新的属性监视器)示例1:给字...
阅读全文
摘要:1,Swift中协议类似于别的语言里的接口,协议里只做方法的声明,包括方法名、返回值、参数等信息,而没有具体的方法实现。12345678910111213141516protocol Person {//读写属性var name:String{get set}//只读属性var age:Int{ge...
阅读全文
摘要:类和结构体有许多相同之处,也有许多不同之处。二者区别如下:1,类可以继承和扩展,结构体不可以2,可以让一个类的实例来反初始化,释放存储空间,结构体做不到3,类的对象是引用类型,而结构体是值类型。所以类的赋值是传递引用,结构体则是传值。相同点:1,定义属性用于储存值2,定义方法用于提供功能3,定义下标...
阅读全文
摘要:在Swift语言中,访问修饰符有三种,分别为private,internal和public。同时,Swift对于访问权限的控制,不是基于类的,而是基于文件的。其区别如下:1,privateprivate访问级别所修饰的属性或者方法只能在当前的Swift源文件里可以访问。2,internal(默认访...
阅读全文
摘要:1,Swift中类可以使用计算属性,即使用get和set来间接获取/改变其他属性的值,代码如下1234567891011121314151617class Calcuator{var a:Int = 1;var b:Int = 1;var sum:Int{get{return a + b}set(v...
阅读全文
摘要:定义下标脚本之后,可以使用“[]”来存取数据类型的值。示例1:实现一个我们自定的字符串类,可以方便的通过索引获取某一个字符值,或某一部分字符串。同时也可以通过索引,给某一部分赋值。123456789101112131415161718192021222324252627282930313233343...
阅读全文
摘要:1,结构体struct和枚举enum的静态属性,静态方法使用static关键字12345678910struct Account { var amount : Double = 0.0 //账户金额 var owner : String = "" //账户名 static var interestR...
阅读全文
摘要:属性观察者,类似于触发器。用来监视属性的除初始化之外的属性值变化,当属性值发生改变时可以对此作出响应。有如下特点:1,不仅可以在属性值改变后触发didSet,也可以在属性值改变前触发willSet。2,给属性添加观察者必须要声明清楚属性类型,否则编译器报错。3,willSet可以带一个newName...
阅读全文
摘要:1,无返回值的函数123func test(name:String){}2,返回一个返回值123func test(name:String) -> Bool{return true}3,返回由多个值组成的复合返回值12345func test(name:String) -> (Int,Bool){...
阅读全文
摘要:1,init():类的初始化方法(构造方法)12345678910111213141516171819202122232425262728293031/********************************使用默认构造函数********************************/c...
阅读全文
摘要:1,if语句12345if count >=3 {println("yes")}else{println("no")}2,switch语句(1)Swift中不需要在case块中显示地使用break跳出switch。如果想要实现C风格的落入特性,可以给需要的case分支插入fallthrough语句...
阅读全文
摘要:1,数组 - Array1234567891011121314151617181920212223242526272829var types = ["none","warning","error"] //省略类型的数组声明var menbers = [String]() //声明一个空数组menbe...
阅读全文
摘要:让已有的运算符对自定义的类和结构进行运算或者重新定义已有运算符的运算规则,这种机制被称为运算符重载。1,通过重载加号运算符,使自定义的两个坐标结构体对象实现相加:1234567891011struct CenterPointer{var x=0, y=0}func + (left:CenterPoi...
阅读全文
摘要:区间运算符可以用来表示两个操作数之间的范围集合。1,闭区间运算符:a...b123for iCount in 512...1024{//从512遍历到1024(包括1024)}2,半闭区间运算符:a..(start: index, end: index2)var rangeStr1 = words....
阅读全文
摘要:arc4random()这个全局函数会生成9位数的随机整数1,下面是使用arc4random函数求一个1~100的随机数(包括1和100)1var temp:Int = Int(arc4random()%100)+12,下面是使用arc4random_uniform函数求一个1~100的随机数(包括...
阅读全文
摘要:2015-01-08 14:59 发布:yuhang 浏览:434 下面是Swift中基本的数据类型介绍说明:1,变量:使用var声明1var str:String = "hangge.com"2,常量:使用let声明1let count:Int = 323,整形:有符号整形:Int,Int8,In...
阅读全文
摘要:当我们首次安装软件打开后,会有5页左右的ScrollView滑动图片,来介绍这个软件的特色和功能,我们叫做引导页。这个引导页只有用户安装后第一次使用的时候才会加载,或者当用户进行版本升级后再次运行的首次,也会加载,那么说一下怎么实现。首先是如何获取当前项目的版本号NSUserDefaults *us...
阅读全文
摘要:在第一次打开APP或者APP更新后通常用引导页来展示产品特性我们用NSUserDefaults类来判断程序是不是第一次启动或是否更新,在AppDelegate.swift中加入以下代码:func application(application: UIApplication, didFinishLau...
阅读全文
摘要:NSLog的定义NSLog定义在NSObjCRuntime.h中,如下所示:void NSLog(NSString *format, …);基本上,NSLog很像printf,同样会在console中输出显示结果。不同的是,传递进去的格式化字符是NSString的对象,而不是chat *这种字符串指...
阅读全文
摘要:一、简单介绍UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ、微信等应⽤。二、UITabBarController的使用1.使用步骤:(1)初始化UIT...
阅读全文
摘要:目录“轮子”工具类存储类网络类图片类界面类框架类“车子”示例项目完整应用“轮子”工具类项目开发者备注SwiftyJSONtangplin,lingoerGitHub 上最为开发者认可的 JSON 解析类Dollar.swiftAnkur PatelSwift 版 Lo-Dash (或 undersc...
阅读全文
摘要:原文:HealthKit Tutorial with Swift: Workouts作者:Ernesto García 译者:Mr_cyz)欢迎回到我们的HealthKit系列教程!在我们系列教程的第一篇(中译版)中,你已经学到了使用HealthKit开发的基础:读写数据。在这第二篇,同时也是最后一...
阅读全文
摘要:原文:HealthKit Tutorial with Swift: Getting Started作者:Ernesto García 译者:Mr_cyz )HealthKit是iOS 8中的新的API,它提供了一种优雅的方式来获取和存储用户的健康数据。在本篇HealthKit教程中,你将会创建一个简...
阅读全文
摘要:主要学习与运行效果在本节的内容中,我们将通过一个具体实例的实现过程,详细讲解在表视图当中,如何创建一个可展开可收缩的表视图。为了让读者有着更为直观的印象,我们将通过模仿QQ好友列表来实现这个效果。该示例主要演示:1.表视图外观设计2.自定义用户组设计3.从plist文件中读取数据4.将数据显示在表视...
阅读全文
摘要:原文:Beginning Auto Layout Tutorial in Swift: Part 1/2,译者:@TurtleFromMars开始用自动布局约束的方式思考吧!更新记录:该教程由Brad Johnson更新Swift和iOS 8内容,原文第一版作者为教程编纂组的Matthijs Hol...
阅读全文