iOS
文章平均质量分 50
winterLiao
这个作者很懒,什么都没留下…
展开
-
swift学习笔记(3)-字符串
字符串初始化、操作转载 2017-02-10 13:40:12 · 354 阅读 · 0 评论 -
iOS appIcon生成和设置
使用asset catalog creator工具一键生成app的icon,美工出一张1024*1024的图片即可,不用再Xcode中一张张选择各类型的icon,方便很多 使用方法 直接将1024尺寸的图片拖到这上面即可,选择好你工程中images.xcassets文件夹的位置,选择iOS icon,最后点击Update Assets Catalog即可完成。 生成之后你可以在工程中image原创 2017-03-04 20:04:43 · 744 阅读 · 0 评论 -
swift学习笔记(17)- 类型转换
定义一个类层次作为例子你可以将类型转换用在类和子类的层次结构上,检查特定类实例的类型并且转换这个类实例的类型成为这个层次结构中的其他类型。下面的三个代码段定义了一个类层次和一个包含了这些类实例的数组,作为类型转换的例子。class MediaItem { var name: String init(name: String) { self.name = name转载 2017-03-06 16:20:31 · 417 阅读 · 0 评论 -
swift学习笔记(18)- 扩展
扩展作用添加计算型属性和计算型类型属性定义实例方法和类型方法提供新的构造器定义下标定义和使用新的嵌套类型使一个已有类型符合某个协议 在 Swift中,你甚至可以对协议进行扩展,提供协议要求的实现,或者添加额外的功能,从而可以让符合协议的类型拥有这些功能。你可以从协议扩展获取更多的细节。 注意 扩展可以为一个类型添加新的功能,但是不能重写已有的功能。扩展语法使用关键字 exte转载 2017-03-06 18:12:52 · 364 阅读 · 0 评论 -
swift学习笔记(19)- 协议
协议语法协议的定义方式与类、结构体和枚举的定义非常相似:protocol SomeProtocol { // 这里是协议的定义部分}要让自定义类型遵循某个协议,在定义类型时,需要在类型名称后加上协议名称,中间以冒号(:)分隔。遵循多个协议时,各协议之间用逗号(,)分隔:struct SomeStructure: FirstProtocol, AnotherProtocol { //转载 2017-03-09 10:23:02 · 416 阅读 · 0 评论 -
swift学习笔记(20)- 泛型
泛型函数泛型函数可以适用于任何类型,下面的 swapTwoValues(::) 函数是上面三个函数的泛型版本:func swapTwoValues<T>(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA}swapTwoValues(::) 的函数主体和 swapTwoInts(::)转载 2017-03-10 16:43:46 · 483 阅读 · 0 评论 -
iOS缓存清理
1.清除本地数据库中的数据2. 清除Caches目录下文件 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES); NSString *cachesDir = [paths objectAtIndex:0]; NSFileManager* man原创 2017-03-27 09:50:52 · 479 阅读 · 0 评论 -
iOS gif加载视图
gifLoadView 一句话就可以为视图添加加载 let loadView = LWTGifLoadView(frame:self.view.frame, callback:{ //网络请求 print("重新请求") }) self.view.addSubview(loadView)加载数据后再做处理原创 2017-04-07 14:38:51 · 470 阅读 · 0 评论 -
swift学习笔记(21)- 访问控制
模块和源文件Swift 中的访问控制模型基于模块和源文件这两个概念。模块指的是独立的代码单元,框架或应用程序会作为一个独立的模块来构建和发布。在 Swift 中,一个模块可以使用 import 关键字导入另外一个模块。在 Swift 中,Xcode 的每个目标(例如框架或应用程序)都被当作独立的模块处理。如果你是为了实现某个通用的功能,或者是为了封装一些常用方法而将代码打包成独立的框架,这个框架就是转载 2017-03-13 14:18:42 · 421 阅读 · 0 评论 -
swift学习笔记(22)- 高级运算符
Swift 支持 C 语言中的全部位运算符。 主要记下特殊的高级运算符溢出运算符在默认情况下,当向一个整数赋予超过它容量的值时,Swift 默认会报错,而不是生成一个无效的数。这个行为为我们在运算过大或着过小的数的时候提供了额外的安全性。例如,Int16 型整数能容纳的有符号整数范围是 -32768 到 32767,当为一个 Int16 型变量赋的值超过这个范围时,系统就会报错:var poten转载 2017-03-13 15:28:06 · 329 阅读 · 0 评论 -
tableview 去除footer高度
tableView Section头部停留在顶部当UITableView的style为Plain的时候,就会出现这种情况,解决办法就是创建的时候选择组的形式 _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, self.view.frame.size.height - 64)原创 2017-03-22 10:04:13 · 2056 阅读 · 0 评论 -
从零开始搭建iOS项目框架
APP项目搭建上周个人刚搭建完的项目框架,在这分享一下,主要还是采用MVC设计模式,没有使用storyboard,纯代码搭的界面。1.新建工程1.1 新建项目 * 删除无用的文件(Main.storyboard,ViewController) * 删除plist文件中Main storyboard file base name一项 * appdelegate进行修改- (BOOL)applic原创 2017-03-31 14:03:05 · 6895 阅读 · 2 评论 -
swift 简单易用类似新闻客户端的结构
一句话实现let segementVC = LWTSegementViewController()//设置栏目的标题数组segementVC.titleArray = ["社会","科技","娱乐","体育","美女","动物"]//设置每个栏目的控制器数组for (_, _) in segementVC.titleArray.enumerated() { let vc = Tes原创 2017-03-15 16:33:25 · 993 阅读 · 0 评论 -
iOS 字符中插入按钮(简单图文混排)
需求字符串中某段区域需要添加点击效果或者字符串中添加可点击的按钮。 解决:给UILabel添加点击事件的category。原创 2017-07-04 14:25:02 · 2826 阅读 · 0 评论 -
MJRefresh实现动画下拉刷新
项目中需要使用下拉的动画效果,MJ上的是图片在左,文字在右(而且没有样式选择),我们需要的是图片在上文字在下,我们只需要继承MJRefreshGifHeader,即可修改样式。 -(void)prepare{ [super prepare]; // 设置普通状态的动画图片 NSMutableArray *idleImages = [NSMutableArray array];原创 2017-03-08 17:07:09 · 1778 阅读 · 0 评论 -
swift学习笔记(13)- 构造过程、析构过程
构造过程是使用类、结构体或枚举类型的实例之前的准备过程。在新实例可用前必须执行这个过程,具体操作包括设置实例中每个存储型属性的初始值和执行其他必须的设置或初始化工作。通过定义构造器来实现构造过程,这些构造器可以看做是用来创建特定类型新实例的特殊方法。与 Objective-C 中的构造器不同,Swift 的构造器无需返回值,它们的主要任务是保证新实例在第一次使用前完成正确的初始化。存储属性的初始赋值转载 2017-02-22 19:30:25 · 528 阅读 · 0 评论 -
swift学习笔记(14)- 解决循环强引用
自动引用计数的工作机制当你每次创建一个类的新的实例的时候,ARC 会分配一块内存来储存该实例信息。内存中会包含实例的类型信息,以及这个实例所有相关的存储型属性的值。此外,当实例不再被使用时,ARC 释放实例所占用的内存,并让释放的内存能挪作他用。这确保了不再被使用的实例,不会一直占用内存空间。然而,当 ARC 收回和释放了正在被使用中的实例,该实例的属性和方法将不能再被访问和调用。实际上,如果你试图转载 2017-02-23 13:49:16 · 489 阅读 · 0 评论 -
swift学习笔记(6)-函数
函数函数的定义与调用当你定义一个函数时,你可以定义一个或多个有名字和类型的值,作为函数的输入,称为参数,也可以定义某种类型的值作为函数执行结束时的输出,称为返回类型。每个函数有个函数名,用来描述函数执行的任务。要使用一个函数时,用函数名来“调用”这个函数,并传给它匹配的输入值(称作 实参 )。函数的实参必须与函数参数表里参数的顺序一致。func greet(person: String) -> St转载 2017-02-16 18:29:10 · 312 阅读 · 0 评论 -
swift学习笔记(1)-基础语法
swift变量、常量声明转载 2017-02-09 17:24:02 · 332 阅读 · 0 评论 -
swift学习笔记(2)-基本运算符
switf学习日记 基本运算符转载 2017-02-10 10:04:06 · 467 阅读 · 0 评论 -
swift学习笔记(4)-集合类型
Swift 语言提供Arrays、Sets和Dictionaries三种基本的集合类型用来存储集合数据。数组(Arrays)是有序数据的集。集合(Sets)是无序无重复数据的集。字典(Dictionaries)是无序的键值对的集。数组创建一个空数组我们可以使用构造语法来创建一个由特定数据类型构成的空数组:var someInts = [Int]()print("someInts is of typ转载 2017-02-13 14:23:40 · 805 阅读 · 0 评论 -
swift学习笔记(7)-闭包
闭包表达式闭包表达式是一种利用简洁语法构建内联闭包的方式。sorted 方法Swift 标准库提供了名为 sorted(by:) 的方法,它会根据你所提供的用于排序的闭包函数将已知类型数组中的值进行排序。一旦排序完成,sorted(by:) 方法会返回一个与原数组大小相同,包含同类型元素且元素已正确排序的新数组。原数组不会被 sorted(by:) 方法修改。let names = ["Chris"转载 2017-02-20 14:59:07 · 444 阅读 · 0 评论 -
swift学习笔记(8)-枚举
枚举语法使用enum关键词来创建枚举并且把它们的整个定义放在一对大括号内:enum SomeEnumeration { // 枚举定义放在这里 } 下面是用枚举表示指南针四个方向的例子:enum CompassPoint { case north case south case east case west } 枚举中定义的值(如 north转载 2017-02-20 15:01:32 · 415 阅读 · 0 评论 -
swift学习笔记(9)-结构体和类
结构体和类对比Swift 中类和结构体有很多共同点。共同处在于: * 定义属性用于存储值 * 定义方法用于提供功能 * 定义下标操作使得可以通过下标语法来访问实例所包含的值 * 定义构造器用于生成初始化值 * 通过扩展以增加默认实现的功能 * 实现协议以提供某种标准功能与结构体相比,类还有如下的附加功能: * 继承允许一个类继承另一个类的特征 * 类型转换允许在运行时检查和解释一个类转载 2017-02-20 16:36:06 · 722 阅读 · 0 评论 -
swift学习笔记(10)-属性
存储属性简单来说,一个存储属性就是存储在特定类或结构体实例里的一个常量或变量。存储属性可以是变量存储属性(用关键字 var 定义),也可以是常量存储属性(用关键字 let 定义)。可以在定义存储属性的时候指定默认值,请参考默认构造器一节。也可以在构造过程中设置或修改存储属性的值,甚至修改常量存储属性的值,请参考构造过程中常量属性的修改一节。下面的例子定义了一个名为 FixedLengthRange转载 2017-02-20 18:21:48 · 322 阅读 · 0 评论 -
TextView添加链接实现富文本label带点击功能
TextView添加链接有时候我们需要实现一行文中中某些文字带有点击的功能,大多数情况下会采用label和button结合实现或者第三方富文本label,其实用textView添加链接实现起来非常方便。 需要设置得文字NSString *text =@"我同意《XX在线服务协议》及《XX在线用户信息及隐私保护规则》";NSMutableAttributedString *MAttributedS原创 2017-02-21 15:12:26 · 1625 阅读 · 0 评论 -
swift学习笔记(5)-控制流
For-In 循环for index in 1...5 { print("\(index) times 5 is \(index * 5)")}// 1 times 5 is 5// 2 times 5 is 10// 3 times 5 is 15// 4 times 5 is 20// 5 times 5 is 25如果你不需要区间序列内每一项的值,你可以使用下划线(_)替代转载 2017-02-13 15:44:34 · 376 阅读 · 0 评论 -
swift学习笔记(11)- 下标
下标下标可以定义在类、结构体和枚举中,是访问集合,列表或序列中元素的快捷方式。可以使用下标的索引,设置和获取值,而不需要再调用对应的存取方法。举例来说,用下标访问一个Array实例中的元素可以写作someArray[index],访问Dictionary实例中的元素可以写作someDictionary[key]。一个类型可以定义多个下标,通过不同索引类型进行重载。下标不限于一维,你可以定义具有多个入转载 2017-02-22 10:21:12 · 447 阅读 · 0 评论 -
swift学习笔记(12)- 继承
定义一个基类不继承于其它类的类,称之为基类。 注意 Swift 中的类并不是从一个通用的基类继承而来。如果你不为你定义的类指定一个超类的话,这个类就自动成为基类。class Vehicle { var currentSpeed = 0.0 var description: String { return "traveling at \(currentSpe转载 2017-02-22 11:46:52 · 281 阅读 · 0 评论 -
iOS日期选择器
LWTDatePickerView简洁的日期选择器 oc版本创建 LWTDatePickerView *pickerView = [[LWTDatePickerView alloc] initWithPickerViewWithCenterTitle:@"选择期限" LimitMaxIndex:50];滚动到特定日期 [pickerView pickerViewDidSelectRow原创 2017-03-02 16:24:39 · 553 阅读 · 0 评论 -
iOS加密方式(RSA签名加密、AES加密等)
之前项目中采取的加密方式,只是对于重要的参数进行AES加密,再将各个参数拼接而成,通过MD5签名后形成最后一个参数。目前,改用了RSA签名的方式进行加密。AES加密主要针对于些重要的参数进行加密,如账号、密码等,具体代码实现可下Demo查看//AES加密- (NSData *)AES128EncryptedDataWithKey:(NSString *)key iv:(NSString *)iv原创 2017-07-26 19:25:01 · 2542 阅读 · 0 评论