
ios开发
鬼谷传人
喜欢火影,喜欢编程,喜欢与爱学者讨论知识,分享知识.
展开
-
ios开发系列之Animation Block的使用
Animation Block 动画块动画(1) [UIView animateWithDuration:<#(NSTimeInterval)#> animations:<#^(void)animations#>]; //只有动画和持续时间(2)[UIView animateWithDuration:<#(NSTimeInterval)#> animations:<#^(void)animatio原创 2015-09-09 10:14:21 · 1195 阅读 · 0 评论 -
ios开发系列之NSRange
//NSRange的定义可以理解为从location开始的length个元素typedef struct _NSRange { NSUInteger location; //表示对象开始的下标 NSUInteger length; //表示对象长度} NSRange;//创建NSRange的方法定义:NSRange NSMakeRange(NSUInteger loc, NSU原创 2015-10-09 14:21:55 · 3046 阅读 · 0 评论 -
ios开发系列之XML解析和JSON解析数据
当客户端向服务器请求数据返回结束的时候,我们为了大多数人能看懂返回的数据,需要对这些数据进行解析,以获取关键的信息.具体请看下面:XML解析:解析关键 :xml解析是从上往下解析的,弄清楚对应标签的层次关系,同一层次的为相同类型,同一层次的标签比较多的时候可以视为模型的属性 例如 :下面这个xml文档,<breakfast_menu>中包含许多<food>,而<food>中包含了<name>,<p原创 2015-10-24 19:54:14 · 981 阅读 · 0 评论 -
关于使用Xcode--Editor相关选项建立autoLayout的约束的使用介绍
注意:1.不论是竖屏还是横屏,我们说的上,下,左,右都是自然状态下的概念,并没有以手机坐标为参照物; 2.当约束为两者之间的约束时, constant的值为 first Item以second Item 为参照物对应部位(顶,左边缘,右边缘,底,中心)之间的距离.距离正负号表现为 左负右正,上负下正,这和iphone竖屏时的坐标规则一样的;Align align |əˈlaɪn|A.transi原创 2015-10-24 11:10:04 · 1180 阅读 · 0 评论 -
ios开发系列之文件的写入读取,NSUserDefaults存储数据,NSFileManager操作文件和文件夹
1.文件的写入读取1.路径的获取 NSString * sandBoxPath = NSHomeDirectory();//获得沙盒路径/******************************获得documents文件夹路径********************************/ //1.通过字符串拼接的方法找到 NSString * documentsPath =原创 2015-09-21 21:38:24 · 2317 阅读 · 1 评论 -
ios开发系列之Get与Post方式请求数据
在说请求数据之前,我们先了解下URL URL(Uniform Resource Locator) 统一资源定位符 格式为:protocol(协议) hostname(主机名) port(端口号) path(路径)parameters(参数)其中hostname 也可以换成主机ip地址, 相当于域名,给ip地址带个面具(mask),方便大家记忆 通过URL 我们可以找到服务器上的资源位置,然后客原创 2015-10-23 19:39:23 · 2374 阅读 · 0 评论 -
ios开发系列之应用的后台处理
首先必须了解应用的生命周期以及执行状态,才能明白应用的后台处理应用的生命周期1.未运行 (Not Running): 1)应用的Info.plist包含UIApplicationExitsOnSuspend键,并且设置为YES; 2)应用之前被挂起且系统需要清除一些内存 3)应用在运行过程中崩溃2.活跃 (Active):应用显示原创 2015-10-26 23:11:17 · 905 阅读 · 0 评论 -
ios通知部分的补充---- 系统通知简介
一、键盘1、UIKeyboardWillShowNotification-将要弹出键盘 2、UIKeyboardDidShowNotification-显示键盘 3、UIKeyboardWillHideNotification-将要隐藏键盘 4、UIKeyboardDidHideNotification-键盘已经隐藏 5、UIKeyboardWillChangeFrameNotificati原创 2015-09-23 17:37:11 · 990 阅读 · 0 评论 -
ios开发系列之使用NSDirectoryEnumerator的对象获得目录的资源列表
NSDirectoryEnumerator,目录枚举类,一个NSDirectoryEnumerator对象列举了一个目录的内容,返回的所有文件在目录中的路径名,在该目录中。这些路径是相对于目录而言的。enumeratorAtPath: 这个方法一次可以枚举指定目录中的每一个文件. 默认情况下,如果其中一个文件为包含子文件,那么也会递归的枚举它的子文件. 该方法返回一个目录的所有资源列表.下面以ap原创 2015-10-27 17:28:41 · 4136 阅读 · 0 评论 -
ios开发系列之系统通讯录的相关操作
获取系统通讯录的访问权限及相关信息首先导入AddressBook.framework框架 1)获得系统通讯录的实例 ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);// 第一个参数是预留参数2)获得访问通讯录的权限ABAddressBookRequestAccessWithCompletion原创 2015-10-13 19:54:33 · 1205 阅读 · 0 评论 -
ios开发系列之中文转拼音,去声调,首字母转大写
1) 声明一个为汉字的不可变字符串NSString * str = @"这是一个汉字";2) 将字符串转成c语言中的不可变字符串 CFStringRef strRef = (CFStringRef)str;3) 将上述c中的不可变字符串转成c中可变的字符串 CFMutableStringRef mutableStrRef = CFStringCreateMutableCopy(NULL,原创 2015-10-13 19:42:55 · 2365 阅读 · 0 评论 -
UISearchController的基本使用
#import "SelectViewController.h"@interface SelectViewController ()<UITableViewDataSource,UITableViewDelegate,UISearchResultsUpdating,UISearchBarDelegate>{ BOOL shouldShowSearchResults;}@property原创 2016-02-24 16:10:49 · 9151 阅读 · 0 评论 -
iOS的layout机制相关方法
- (CGSize)sizeThatFits:(CGSize)size { return CGSizeMake(100, 100); //Asks the view to calculate //and return the size that best fits the specified size.}//sizeToFit会自动调用sizeThatFits方法;-原创 2016-03-21 18:38:41 · 454 阅读 · 0 评论 -
好友列表的实现
在这篇文章中,实现了一个好友列表界面,其中好友是按昵称首字母顺序分区,然后每个区中的好友昵称也有按字典排序.最后提供了模糊搜索和首字母搜索,项目下载地址:https://git.oschina.net/lisForCoding/GGFriendTable.git 其中最主要的是将数据源处理成这么一个形式的字典:{@"A":@[@"a",@"ab"],@"B":@[@"b",@"bc"],.原创 2016-03-11 17:19:23 · 1195 阅读 · 0 评论 -
图片位图颜色反转
//遍历图片像素,更改图片颜色void ProviderReleaseData (void *info, const void *data, size_t size){ free((void*)data);}+ (UIImage *)imageBlackToTransparent:(UIImage*) image{ // 分配内存 const int imageWid原创 2016-05-24 17:03:29 · 5720 阅读 · 0 评论 -
有关输入判断之正则表达式的用法
下面这个是判断输入是否为6位数字和字母的组合 NSString * str = _tf.text; NSError * error = NULL; NSRegularExpression * exp = [NSRegularExpression regularExpressionWithPattern:@"[0-9a-zA-Z]{6,6}" options:NSRegularE原创 2016-05-03 11:20:33 · 273 阅读 · 0 评论 -
图片镜像水平翻转,垂直翻转以及顺时针,逆时针旋转
let image = board.image! //水平翻转 let flipImageOrientation = (image.imageOrientation.rawValue + 4) % 8 let flipImage = UIImage(CGImage: image.CGImage!, scale: image.scale, orientation: UIImageOrien原创 2016-05-24 17:42:46 · 15927 阅读 · 0 评论 -
ios开发系列之对象的序列化与反序列化
把自定义类存储到本地的过程叫 对象的序列化(归档)//本质:是把自定义类对象的属性打包成NSData数据(二进制数据)再把二进制数据存储到本地[NSKeyedArchiver archiveRootObject:p toFile:[self getFilePath:@"p.txt"]];把本地存储的自定义类的对象数据 转化成对象的过程 称为反序列化 (反归档)//本质:把本地存储的自定义对象的二原创 2015-10-09 14:33:29 · 1486 阅读 · 0 评论 -
ios开发系列之UITableView的移动行,编辑行,打开关闭区,刷新表
1.移动//返回当前哪个区中的那些行是什么样的编辑样式,默认的是Delete 删除 还有Insert 插入 ,None 什么都没有- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{ return U原创 2015-09-18 17:49:24 · 1609 阅读 · 0 评论 -
ios开发系列之Core Graphics中的CGContext
CGContext 图形上下文,相当于一块画布,以堆栈形式存放,只有在当前context上绘图才有效.iOS有分多种图形上下文,其中UIView 自带提供的在drawRect:方法中 通过UIGraphicsGetCurrentContext获取 注:本文是在q562679764的博客http://blog.youkuaiyun.com/q562679764/article/details/48289365的转载 2015-09-10 17:02:35 · 1219 阅读 · 0 评论 -
iOS开发系列—内存管理
内存管理-黄金法则 The basic rule to apply is everything that increases the reference counter with alloc, [mutable]copy[withZone:] or retain is in charge of the corresponding [auto]release. 如果对一个对象使用了alloc、[m转载 2015-09-10 20:04:03 · 343 阅读 · 0 评论 -
内存分配
学习内存管理时对内存的理解不是很深,于是找了些c中的资料,关于指针和指针所指向对象的内存分配情况原创 2015-09-11 10:34:00 · 383 阅读 · 0 评论 -
ios开发系列之根据字典创建模型
我们可以利用KVC来实现字典转模型的问题,但是KVC的使用是有条件的,由于KVC会将字典所有的键值对(key-value)赋值给模型对应的属性,只有当字典的键值对个数和模型的属性个数相等,并且属性名必须和字典的键值对一样时,才可以使用KVC.必须注意的是,模型中的属性和字典中的属性必须一一对应.字典转模型的基本步骤:plist文件的基本结构:@[ @{name: age: idNumber:原创 2015-09-07 15:00:12 · 2667 阅读 · 0 评论 -
ios开发系列之label自适应大小
根据label的字体来自适应高度和宽度:首先注意设置label的行数属性 label.numberOfLines = 0; //0表示无限制,默认为单行然后创建一个CGSize size对象,用来接收根据label上的字体来调整的宽度和高度, 方法1:让label.text调用方法 (注意该方法返回的是CGRect类型,所以需要在方法后加一个.size)boundingRectWithSize:<原创 2015-09-07 15:08:22 · 1289 阅读 · 0 评论 -
ios开发系列之Sqlite3的增删改查相关操作
1,打开数据库,不存在就会创建一个sqlite3_open([[self getFilePath] UTF8String],&database)//如果返回值为`SQLITE_OK` 则打开数据库成功 ,否则失败数据库的增删改查都是基于打开数据库成功的前提下进行sqlite3_exec操作的sqlite3_exec(database,[sqlStr UTF8String],NULL,NULL,nil原创 2015-09-28 22:18:05 · 1121 阅读 · 0 评论 -
ios开发系列之懒加载
1.基本概念懒加载(lazy loading),也称为延迟加载,即在程序启动时不加载资源,只有在运行时需要该资源,才去加载该资源.所以在使用懒加载的时候一定要先判断是否已经存在,如果不存在再去进行实例化. 写的是其getter方法.2.使用懒加载的好处(1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 (2)每个控件的getter方法中分别负责各自的实例化处理原创 2015-09-07 14:50:02 · 1111 阅读 · 0 评论 -
ios开发系列之触摸事件
在iOS中,不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件,我们称之为”响应者对象”.(比如UIApplication,UIViewController,UIView) UIView不接收触摸事件的三种情况: 1> 不接受用户交互 :userInteractionEnable = NO; 2> 隐藏 :hidden = YES; 3> 透原创 2015-09-12 15:53:53 · 1188 阅读 · 0 评论 -
ios开发系列之排序算法
在说排序前我们先自定义一个类Sort : NSObject 接下来的方法都是此类的类方法,返回的都是一个可变数组 首先,为了方便,我们实现一个用来交换两个对象在数组中的位置的类方法://交换两个对象在数组中的位置+ (void)swapWithData:(NSMutableArray *)aData forIndex:(NSInteger)index withIndex:(NSInteger)原创 2015-09-29 19:22:11 · 1126 阅读 · 0 评论 -
ios开发系列之NSDate,NSDateFormatter,NSDateComponents和NSCalendar
1.NSDate①NSDate对象用来表示一个具体的时间点包含日期和时间 ②NSDate是一个类簇(类簇 是一群隐藏在通用接口下的与实现相关的类,使得我们编写的代码可以独立于底层实现) ③NSDate存储的是GMT时间,使用的时候会根据当前应用指定的时区进行时间上的增减,以供计算或显示.typedef double NSTimeInterval; //秒级别的时间间隔Now //以当前时间为原创 2015-09-15 13:45:33 · 1030 阅读 · 0 评论 -
ios开发系列之通知
1.通知的简述:通知实际上是在程序内部提供了消息广播的一种机制,不能在进程间进行通信. 2.通知的运行机制:通知中心(NSNotificationCenter)把接收到的消息(NSNotification),根据内部的一个消息转发表,来将消息转发给需要的对象,是基于观察者模式,它允许注册和删除观察者. 3.通知中两个重要的类: ①NSNotificationCenter: 通知中心 ,由该类实原创 2015-09-14 21:51:51 · 1140 阅读 · 0 评论 -
ios开发系列之枚举类型的使用
枚举值 ,它是一个整形(int) , 并且,它不参与内存的占用和释放,枚举定义变量即可直接使用,不用初始化. 在代码中使用枚举的目的只有一个,那就是增加代码的可读性enum是枚举类型,用来定义一系列宏定义常量,相当于一系列的#define xx xx ,第一个值默认从0 开始,其后依次加一, 可以对每一个枚举元素赋值typedef enum { messageTypeMe , // = 0原创 2015-09-14 19:10:58 · 1295 阅读 · 0 评论 -
ios开发系列之UITableView
UITableView基本结构我们知道创建UITableView必须要设置代理,而我们的UITableView有两个代理:UITableViewDataSource与UITableViewDelegate,这是为了分离视图和模型.0.UITableViewDataSource 和 UITableViewDelegate的区别:UITableViewDataSource协议里面东西是跟内容有关的,主要原创 2015-09-18 20:44:24 · 1129 阅读 · 0 评论 -
ios开发系列之多线程的三种实现方法
这篇文章中,我不会说多线程是什么、线程和进程的区别、多线程有什么用,当然我也不会说什么是同步、什么是异步等问题,以及UI为什么要在主线程中刷新。仅仅谈一下iOS 中多线程有三种实现方法:NSThread ,NSOperation ,GCD一. NSThread 继承于NSObject1.创建分线程1.1)使用实例方法创建//在分线程执行self的run:方法,传入一个参数NSThread * th原创 2015-11-08 13:18:01 · 541 阅读 · 0 评论 -
ios系列开发之UITableView实现多行删除
实现多行删除的基本思路: UITableViewCellEditingStyle返回的如果是UITableViewCellEditingStyleDelete|UITableViewCellEditingStyleInsert; 编辑表的时候就会出现多选按钮.我们可以将所有选中单元格对应的indexPath存放到一个可变数组中,然后点击删除按钮时移除数据中对应的元素.#import "MainVi原创 2015-09-18 18:16:18 · 1618 阅读 · 0 评论 -
ios开发系列之页面跳转
UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow. 下面说下两个视图控制器之间的跳转,不包括使用导航控制器和模态的方法在xib的情况下的页面跳转//通过单例类UIApplication的实例对象的keyWindow来获得windowUIWindow * window = [UIApplication sharedApplication].keyWindow原创 2015-10-28 20:24:58 · 1172 阅读 · 0 评论 -
截取图片、合并图片
//截取图片func handleImage(flipView:RectFlipAlphaView) -> UIImage { let rect = CGRect(x: flipView.frame.origin.x - self.frame.origin.x, y: flipView.frame.origin.y - self.frame.origin.y, width: fli原创 2016-05-27 09:13:54 · 471 阅读 · 0 评论