- 博客(30)
- 收藏
- 关注
原创 Masonry的屏幕适配的使用
第一,基本使用- (void)viewDidLoad { [super viewDidLoad]; UIView *greenView = [[UIView alloc] init]; greenView.backgroundColor = [UIColor greenColor]; [self.view addSubview:greenView];
2016-07-24 00:47:34
1881
原创 iOS屏幕适配的几种方式
在iOS开发中,会经常碰到屏幕适配的问题,下面来说一下自己在项目开发中遇到的几种屏幕适配的方式.第一种:利用宽高比,在不同的屏幕中来进行对控件的位置与控件的宽高进行等比例缩放.选定一个型号的屏幕的宽高为基准,进行等比例缩放.例如以iPhone6或者iPhone6s为基准.其宽高分别是375与667.Iphone6ScaleWidth = [UIScreen mainScreen].b
2016-07-23 23:48:43
11802
原创 Java抽象类与接口的区别
/* * 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另外一种形式定义和表示,就是 接口 interface * * 对于接口当中常见的成员,而且这些成员都是固定的修饰符 * 1.全局变量:public static final * 2.抽象方法 public abstract * 由此得出结论,接口中的成员都是公共的权限 *//* * 定义接口
2016-05-26 20:42:07
503
原创 Java抽象类的学习
/* * 抽象类: * 抽象:笼统,模糊,看不懂!不具体. * * 特点: * 1.方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰. * 抽象方法必须定义在抽象类中.该类必须也被abstract修饰 * 2.抽象类不可以被实例化,为什么?因为调用抽象方法没有意义 * 3.抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以被实例化,否则这
2016-05-26 17:37:32
370
原创 java继承知识点
/* * 继承的好处: * 1.提高了代码的复用性 * 2.让类与类之间产生了关系,给第三个特征多态提供了前提 * * Java中支持单继承.不直接支持多继承,但对C++的多继承机制进行改良 * 单继承:一个子类只能有一个直接父类 * 多继承:一个子类可以有多个直接父类(Java中不允许,进行了改良),在Java中不直接支持多继承,因为在父类中有相同成员, * 会
2016-05-26 17:34:47
806
原创 栈内存与堆内存与排序
一 栈内存:存储的都是局部变量.而且变量所属的作用域一旦结束,该变量就会自动释放堆内存:存储是数组和对象(其实数组就是对象)凡是new建立在堆中.堆中存储的是实体 特点: * 1.每个实体都有首地址 * 2.堆内存中的每个变量都有默认初始化值,根据类型的不同而不同.整数是0,小数是0.0或者0.0f boolen等 * 3.垃圾回收机制. * Java内存管理:垃圾
2016-05-24 20:02:17
584
原创 深拷贝与浅拷贝
深拷贝是对象拷贝,拷贝出一个新的对象.浅拷贝是指针拷贝,拷贝出一个指针指向原来的对象.在非ARC项目中,原来对象的引用计数加一.第一,字符串的拷贝1>不可变字符串调用copy方法,不会产生一个新的对象,是指针的拷贝.2>不可变字符串调用mutableCopy方法,会产生一个新的对象,是对象的copy例如: //1.不可变字符串 NSString *str =
2016-04-27 09:21:13
406
原创 AFN简单使用
一、2大管理对象1.AFHTTPRequestOperationManager* 对NSURLConnection的封装2.AFHTTPSessionManager* 对NSURLSession的封装二、AFHTTPRequestOperationManager的具体使用1.创建管理者AFHTTPRequestOperationManager *mgr = [AFHTT
2016-04-25 20:23:10
425
原创 HTTP基础
HTTP的通信过程1.请求1>请求行:请求方法 请求路径 HTTP协议版本2> 请求头:客户端的一些描述信息*User-Agernt:客户端的环境(软件环境)3>请求体:POST请求才会有的这个东西*请求参数,发给服务器的数据2.响应1>状态行(响应行):HTTP协议的版本 响应状态嘛 响应状态描述HTTP/1.1 200 OK2>响应头:服务器的描述信
2016-04-25 18:51:33
404
原创 多线程基础
第一,NSThread:一个NSThread对象就代表一条线程1)创建与启动线程 NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run)object:nil];[thread start];线程一启动,就会在线程thread中执行self的run方法.2)主线程相关方法
2016-04-25 11:18:41
342
原创 CAShapeLayer的绘制
第一,绘制一个动画柱状图 //创建路径 UIBezierPath *bezierPath = [UIBezierPath bezierPath]; [bezierPath moveToPoint:CGPointMake(10, 350)]; [bezierPath addLineToPoint:CGPointMake(10, 100)]; //创
2016-04-24 16:17:05
857
原创 字符串:可变字符串与不可变字符串
一 NSString是不可变字符串,所有它所有产生其他字符串方法都是生成一个新的字符串,而不会改变原来字符串第一种:字面量,它是常量字符串,存储常量区NSString *str = @"abc";第二种是通过 快捷的构造方法NSString stringWithFormat:第三种方式 初始化方法[NSString alloc] initWithFormat:二,字
2016-04-23 00:01:35
3350
原创 实例变量与属性:私有变量与私有方法
一,实例变量定义在.h文件中{ @public //公开的, 在任何地方通过实例对象都可以访问 int _age; @private //私有的,表示只能在当前类中使用 NSString *_name; @protected //受保护类型,表示只能在当前类和子类中访问 float _weight;
2016-04-22 23:24:15
1212
原创 分类与扩展
一,分类分类不可以添加属性,在编译阶段不会报错,但是在运行的时候会报错,崩溃,原因是找不到setter方法如果想要给分类添加属性,应该使用runtime,例如为分类添加属性:@property (nonatomic,copy) NSString *userId;在.m文件中实现下面这两个方法-(void)setUserId:(NSString *)userId{
2016-04-22 23:18:10
425
原创 block常见的几个问题
block的理解block是一个指向结构体的指针,编译器会将block的内部代码生成对应的函数一,block与变量1)可以修改全部变量和静态变量2)不可以修改局部变量,如果想要修改使用__block注意:block之所以能够修改全局变量和局部变量与使用__block修饰的局部变量,是因为把指向变量的指针copy到block结构体内部.而布局变量是copy的变量值到block
2016-04-11 18:59:18
1835
原创 IOS中的几种动画的实现方式
在我们开发中,经常会遇到一些需要动画特效的展示,下面来总结一些开发中常见的动画实现方式第一,序列帧动画,通过大量的UIImage来展示动画效果,网络请求等待加载动画效果核心代码: //创建可变数组,存放UIImage对象 NSMutableArray *imageArray = [NSMutableArray array]; for (int i; i<= 39; i
2016-04-11 00:49:45
5905
原创 环信即时通讯的基本集成
项目中是基于环信SDK2.0集成开发,所以本文只介绍SDK2.0的基本集成.第一,前期准备工作,上传推送证书,注册环信开发者账号.然后开始导入环信SDK,EaseMobSDK,导入环信文档2.x需求的SDK依赖库.第二,向Build Settings → Linking → Other Linker Flags 中添加-force_load[空格]EaseMobSDK/lib/libEas
2016-04-08 11:33:57
2709
原创 利用第三方框架获取通讯录(AddressBook),以及以名字对通讯录进行排序
利用系统自带的AddressBook.framework和AddressBookUI.framework框架获得通讯录,相对比较复杂下面就来介绍一个利用第三方框架来获取通讯录:第三方框架:LHDAddressBook框架加载手机通讯录注意事项及前期准备:在使用这个框架的时候需要注意导入#import #import 和#import 系统自带的框架,并且此框架还需要导入#im
2016-03-25 00:03:47
1643
原创 KVO与通知的区别
KVO提供一种机制,当指定的被观察的对像的属性被修改后,KVO会自动通知响应的观察者,KVC(键值编码)是KVO的基础通知:是一种广播机制,在实践发生的时候,通过通知中心对象,一个对象能够为所有关心这个时间发生的对象发送消息,两者都是观察者模式,不同在于KVO是被观察者直接发送消息给观察者,是对象间的直接交互,通知则是两者都和通知中心对象交互,对象之间不知道彼此KVO使用:被观察着发生ad
2016-03-10 10:56:14
5512
原创 单例模式的设计
单例模式可以保证在项目运行过程中,保证只有一个对象,只分配一块内存,防止不必要的内存开支,并且单例可以保证在项目中的全局操作,即使在一个.m文件中创建了单例对象,开启了单例对象的任务,但是在另外一个.m文件中可以对创建的单例对象进行操作,比如关闭单例任务等下面简单说下创建单例://用来保存唯一的单例对象static id _share;/** * alloc方法内部会调用这个方法
2016-03-10 09:15:19
478
原创 AFN框架封装思路(新版本)
在开发项目中避免第三方框架对项目的侵入性,很多需要对第三方框架进行封装,方便以后的框架的变动,项目的管理.下面就自己来说一说自己在项目中,怎么封装的AFN框架.第一步,提供接口供外界调用,传入参数,block返回请求到的数据,提供了四个接口方法,post请求,get请求,图片post请求typedef void (^DownloadFinishedBlock)(NSData *reques
2016-03-09 11:37:41
2646
原创 UIView的层次管理()
子视图添加到父视图中,每次addsubView都是添加在最上面,有的时候需要对子视图在父视图的层次进行管理,显示需要的视图,下面几个方法就是可以调整子视图在父视图中的层次关系.1>bringSubviewToFront:调用父视图的这个方法,把子视图推到最前面 [self.nowView addSubview:self.bgView]; [self.nowView bring
2016-03-09 10:59:05
570
原创 MBProgressHUD的简单封装
下面是依据MBProgressHUD提供的分类方法:/** * 显示一般信息 */+ (void)show:(NSString *)text icon:(NSString *)icon view:(UIView *)view;/** * 显示有偏移量的信息,yoffset,xoffset可以设置为0.f * */+(void)showHint:(NSString *)hin
2016-03-06 15:09:57
2138
原创 进度条的设置
在进行网页的请求的时候,很多情况下需要显示进度条,来显示加载网页的进度第一步:设置进度条的基本属性 UIProgressView *progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 0)]; progressView.tintCol
2016-01-31 10:59:37
537
原创 UIAlertController和UIAlertAction的简单使用
第一步:UIAlertController对象 UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"选择" message:nil preferredStyle:UIAlertControllerStyleActionSheet];UIAlertController的样式决定弹框从哪里弹出: U
2016-01-29 00:38:04
850
原创 IOS中对于多个按钮,选中其中一个,其他按钮选中状态为NO
第一,定义一个全局的按钮变量/** * 按钮选中,中间值 */@property (nonatomic,strong) UIButton *selectedBtn;第二,添加多个按钮到scrollView中/** * 创建按钮添加到scrollView */-(void)creatBtn{ int i = 0; NSArray *titleArray = @[
2016-01-27 12:30:23
11493
原创 自定义导航控制器的titleView实现多控制器的切换
在很多应用中都有通过自定义navigationItem的titleView,来实现多个控制器的切换管理.主要实现这个功能需要注意一下两个方面:一,自定义titleView,里面包含两个按钮,监听点击事件,切换到哪个控制器二,scrollView确定滚动的范围,有几个控制器就设置contentSize有多大三,切换的控制器view,添加到scrollView上,使得在滚动的时候可以切换控
2016-01-26 17:59:07
1847
原创 componentsJoinedByString和componentsSeparatedByString的使用
//1.将数组转换为字符串 NSArray *array = @[@"zhangsan",@"wangwu",@"lisi"]; NSString *str1 = [array componentsJoinedByString:@","]; //2.将字符串转换为数组 NSString *str2 = [NSStri
2016-01-25 21:02:43
2506
原创 interactivePopGestureRecognizer(右滑)
在iOS7中,新增加了一个小小的功能,也就是这个api:self.navigationController.interactivePopGestureRecognizer.enabled= YES;这个api功能就是在NavigationController堆栈内的UIViewController可以支持右滑手势,不用点击右上角的返回按钮,轻轻在屏幕左边一滑,屏幕就会返回。但是我们经常
2016-01-19 21:38:54
850
原创 在开发中图片浏览遇到的一些简单问题
在开发中图片浏览遇到的一些简单问题由于在项目中已经用到了一个第三方框架(MJPhotoBrowser)做图片浏览了,所以就使用了这个框架来做图片的浏览功能.项目需求单击图片放大(只可以浏览单张图片)增加删除按钮怎么使用MJPhotoBrowser框架做图片浏览代码块 NSMutableArray *photoA = [NSMutableArray array];
2016-01-02 23:40:21
1695
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人