自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 数据选择控件-UIPickerView的总结

数据选择控件就是帮助用户快速选择数据的控件。UIPickerView——显示一组或多组数据方便用户选择。作用(1)从指定的数据源中选择数据;(2)通常以UITextField的inputView的形式出现(当选中某个文本框后, 弹出键盘中显示该控件)。注意使用PickerView之前需要指定数据源对象和代理对象。需要使用到的两个协

2016-05-02 22:30:24 7339

原创 一步一步教你完成通讯录索引的编码

实现UITableview的索引编码的最简单的方法

2016-04-07 23:29:26 1180

原创 CALayer 的基本概念和基本使用

一、基本介绍1.概念CALayer 的 CA 是 Core Animation (核心动画)。在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层。在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过

2016-04-04 17:45:59 573

原创 UITableView 介绍

一、UITableView 理解在移动应用中,能看到各式各样的表格数据。在iOS中,要实现表格数据的展示,最常用的做法就是使用UITableView。UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳。UITableview有分组和不分组两种样式,可以在storyboard或者是用代码设置。A、UITableViewStyleGrouped

2016-01-24 23:10:31 644

原创 CATransition-转场动画

CATransition-转场动画概念它是 CAAnimation 的子类,用于做转场动画,能够为层 (CALayer) 提供移出屏幕和移入屏幕的动画效果。实际上 UINavigationController 就是通过 CATransition 实现了将控制器的视图推入屏幕的动画效果。属性解析:       type:动画过渡类型 subtype:动画过渡方向

2016-01-17 20:48:55 355

原创 UIScrollView 介绍

一、UIScrollView 的基本概念UIScrollView是iOS中的滑动控件,可以实现”滚动”和”缩放”,用来解决当前要显示的内容超出视图的范围时,可以通过滑动方式查看视图的所有内容的问题。二、UIScrollView 的常见属性1、、contentSize// default CGSizeZero@property(nonatomic)  CGSi

2016-01-10 22:00:24 383

原创 浅析 UIImage 的2种加载方式对内存的影响

A、UIImage的2种加载方式:方式一:有缓存(图片所占用的内存会一直停留在程序中)+ (nullable UIImage *)imageNamed:(NSString *)name;  // name是图片的文件名解析:1. 该方法会自动地做缓存,一般用于给控件添加素材图片,比如背景图片、placeHolder等。 2. 使用( 

2015-12-29 12:18:01 3400

原创 cell的重用机制

cell的重用机制

2015-12-24 13:06:52 638

原创 Objective-C 之 KVO 详解

A、概要iOS 开发有多种设计模式,其中就有一种叫做观察者模式,它是通过 KVO 实现的。B、KVO 简介KVO 的全称是 Key-Value Observing,是ObjC中原生支持的一种机制。C、KVO 实现原理当对一个对象添加观察者,被观察对象的属性值发生变化时,观察者会得到通知,并对变化做出相应的处理。D、KVO 的特点1. 支持多个

2015-12-13 20:43:48 575

原创 Objective-C 之KVC详解

一、KVC深入理解a. 概念:KVC:指的是 key valued coding 键值编码。b. 赋值:使用KVC间接修改对象属性时,系统会自动判断对象属性的类型,并完成转换。c. 取值:KVC按照键值路径取值时,如果对象不包含指定的键值,会自动进入对象内部层层深入,获取对应的键值。d. 注意:KVC是一种间接修改/读取对象属性的一种方式,在使用时需要注意,

2015-12-10 16:10:46 538

原创 ARC环境下两种单例设计模式的比较:GCD和同步锁

A. 单例模式的设计思路:(1)永远只分配一块内存来创建对象;(2)提供一个类方法,返回内部唯一的实例;(3)确保 init 方法只初始化一次;(通常采用懒加载的方式在第一次用到实例的时候再去创建它。)B. 单例模式的作用 :可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问,从而方便地控制了实例个数,并节约系统资源。

2015-12-08 23:27:19 608

原创 XML数据解析的两种方法:SAX和DOM

一、XML的简单介绍    1.XML(eXtensible Markup Language)'可扩展标记语言',跟JSON一样,也是用来数据交互。而HTML是超文本标记语言,用来表示网页页面。    2.XML语法简介:    一个完整的XML文件叫XML文档(XML Document),一般由以下几部分组成:    a. 文档

2015-12-01 19:19:22 476

原创 使用苹果原生的JSON数据解析浅析

一、什么是JSON数据?    1.    JSON:是一种轻量级的传输数据格式,用于数据交互。    JSON 是 javascript 语言的一个子集。    javascript 是个脚本语言(不需要编译),用来给HTML增加动态功能,javascript和java没有半毛钱的关系!    服务器返回给客户端的数据,一般都是 JSON 格式或者 X

2015-12-01 17:27:58 1221

原创 NSUrlSession 网络会话介绍

NSUrlSession 网络会话的使用分三步:1> 创建网络会话 【单例】2> 实例化网络任务【默认挂起状态,并且在在子线程回调】3> 开启网络任务【手动】- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSString *urlString = @"http://local

2015-12-01 16:46:43 367

原创 介绍5个简单的网络请求Demo

介绍5个简单的网络请求Demo。1.- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ // 1. 创建一个网络请求 NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; NSURLRequest *request =

2015-12-01 15:25:25 655

原创 mrc和arc混编的配置

1.单个文件的编译环境由arc变为mrc;2.整个项目的编译环境更改的配置;3.单个文件由mrc变为arc的配置。

2015-11-27 00:01:22 514

转载 iOS开发的22个诡异技巧,你知道多少?

1. TableView不显示没内容的Cell怎么办?类似于图1,我不想让下面的那些空显示。很简单,添加“self.tableView.tableFooterView = [[UIView alloc] init];”试过都说好,加完这句之后就变成了图2的样子。2. 自定义了leftBarbuttonItem左滑返回手势失效了怎么办?self.navigationItem.

2015-11-15 18:06:33 577

原创 swift语言入门介绍

1.OC 的gcd、runtime是开源的,UIKIT是闭源的;WWDC会议有对语言的新特性的讲解,维持一周,现在主推Swift语言。2.所有的声明和实现都在同一个文件中;没有.h和.m文件。3.整数默认类型是int long小数默认类型是double(oc中的CGFloat 是单精度的)数据的类型是自动推导的,能根据 ’=’ 右边的数据

2015-11-05 20:21:56 469

原创 Git/Framework静态库介绍:创建和使用

一、创建Framework静态库1. 选择Cocoa Touch Framework 一栏:2.在导入已经创建好的Framework静态库时要用Framework静态库时导入头文件要使用””。3.头文件跟.a一样,默认只输出创建项目时自带的.h,如果要导出头文件,找项目--> Build Phases --> Headers -->将Project的头文

2015-11-01 20:57:28 1118

原创 Git/.a静态库的介绍:创建和使用

一、 创建.a静态库1. 选择Cocoa Touch Static Library 一栏:2. 编译编译时时先用真机编译一次,.a文件的颜色就会从红色变为黑色;默认编译后(真机/模拟器分别运行)只会输出自带的.h, 不会输出新建类的.h;需要手动做修改“选择项目--> Build Phases --> Copy file --> 添加.h”。

2015-11-01 20:56:11 926

原创 网络编程基础

一、网络编程网络编程是一种实时更新应用数据的常用手段,是开发优秀网络应用的前提和基础。二、基本概念客户端(Client):一般就是前端/前台,移动应用(iOS、android等应用)开发都是前端开发。服务器(Server):为客户端提供服务、提供数据、提供资源的机器,负责处理网络请求,本质也是一台计算机(+服务器软件),服务器开发就是后端/后台开发(java/p

2015-10-29 23:55:05 548

原创 NSOperation的介绍

iOS开发多线程篇—NSOperation简单介绍一、NSOperation简介1. 简单说明a. NSOperation的作用:是OC语言中基于GCD的面向对象的封装,使用起来比GCD更加简单(面向对象);提供了一些用GCD不好实现的功能,使用NSOperation不用关心线程以及线程的生命周期(苹果推荐使用)。b. 配

2015-10-27 23:51:36 297

原创 Foundation框架之NSString的小众笔记

部分Foundation框架的总结:1.范围 _NSRange 的结构体:    typedef struct _NSRange {        unsigned int location;        unsigned int length;    }NSRange;    //其中location表示字段存放该范围的起始位置,length

2015-10-27 18:10:06 282

原创 iOS开发之多线程编程:GCD

1.     什么是GCD?全称是Grand Central Dispatch,是纯C语言,提供了非常多强大的函数。2.     GCD的优势GCD是苹果公司为多核的并行运算提出的解决方案;GCD会自动利用更多的CPU内核(比如双核、四核);GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程);程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理

2015-10-16 23:04:10 426

原创 iOS中的消息循环

1.     消息循环概念RunLoop就是消息循环,每一个线程内部都有一个消息循环。只有主线程的消息循环默认开启,子线程的消息循环默认不开启。 2.     子线程开启消息循环的3种方式:(1)开启消息循环 使用run方法后无法停止消息循环。[[NSRunLoopcurrentRunLoop]run];(2)指定循环运行时间[[NSRunLoo

2015-10-16 20:34:36 1824

原创 Weak、Strong、assign 和 autorelease + 1道面试题

一、weak、strong、assign的理解1. OC 对象用 strong,为什么连线的ui控件却用weak?controller → view → view.subViews → imageView → 强引用controller → imageView → 弱引用controller → imageView 这个位置换成 strong 也可以,但是不建议,如

2015-10-11 01:18:37 497

原创 线程间通信

1. 什么叫做线程间通信在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信。2. 线程间通信的体现1个线程传递数据给另1个线程;在1个线程中执行完特定任务后,转到另1个线程继续执行任务。线程间通信常用方法- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(n

2015-10-11 00:50:15 389

原创 原子和非原子属性

一、原子和非原子属性1. OC在定义属性时有nonatomic和atomic两种选择:atomic:原子属性,为setter方法加锁(默认就是atomic);nonatomic:非原子属性,不会为setter方法加锁。2. nonatomic和atomic的对比atomic:线程安全,需要消耗大量的资源;nonatomic:非线程安全,适合内

2015-10-11 00:28:53 2209

原创 多线程的安全隐患

1. 资源共享1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源;比如多个线程访问同一个对象、同一个变量、同一个文件;当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题。2. 安全隐患示例–存钱取钱3. 安全隐患分析4. 安全隐患解决–互斥锁5. 互斥锁使用格式@synchron

2015-10-11 00:26:09 565

原创 iOS中多线程的实现方案之pthread和NSThread

【文章结尾附上iOS中多线程的实现方案总结】一、pthreada. demo1b. demo2c. 对demo2中提到的 __bridge 的理解ARC只负责OC的代码,不负责 c 的代码;在ARC中,使用到和 c 语言对应的数据类型,应该使用__bridge桥接,在MRC中,不需要桥接;在OC中,如果是ARC的话,编译的时候会自动添加ret

2015-10-10 22:56:40 453

原创 多线程基础知识介绍

1.基本概念a. 同步执行:1个线程中任务的执行是串行的;如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务;也就是说,在同一时间内,1个线程只能执行1个任务。b. 异步执行:多个人可以同时执行多个任务。c. 进程:进程是指在系统中正在运行的一个应用程序;每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内(比如同时打

2015-10-10 22:45:31 773 1

原创 归档解档(编码解码)

1.理解a.  如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,可以直接用NSKeyedArchiver进行归档和恢复;b. 不是所有的对象都可以直接用这种方法进行归档,只有遵守了NSCoding协议的对象才可以;2. NSCoding协议的2个方法:uencodeWit

2015-10-08 01:01:44 1036

原创 偏好设置的存储

1. 理解:a. 很多iOS应用都支持偏好设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能。b. 每个应用都有个NSUserDefaults实例,通过它来存取偏好设置,比如:保存用户名、字体大小、是否自动登录等。c. 注意:UserDefaults设置数据时,不是立即写入,而是根据时间戳定时地把缓存中的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程

2015-10-08 00:48:55 1303

原创 XML属性列表(plist)归档

XML属性列表(plist)归档1> 理解:a. 属性列表是一种XML格式的文件,拓展名为plist;b.如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文件中;c. 自定义对象不能做 plist 存储,因为它没有

2015-10-08 00:24:55 539

原创 数据存取的方式和应用沙盒目录的常见获取方式

iOS应用数据存储的常用方式1. XML属性列表(plist)归档2. Preference(偏好设置)3. NSKeyedArchiver归档4. SQLite3(本文不涉及)5. Core Data(本文不涉及)应用沙盒:每个iOS应用都有自己的应用沙盒(应用沙盒就是应用的文件夹),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒.但是,在iOS

2015-10-08 00:08:49 1032

原创 实现从一个应用程序内部跳转到另一个应用程序的Demo

2个APP素材:《网易彩票》《幸运大转盘》原理理解1:苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互之间是不可以进行通信的。但是iOS的APP可以注册自己的URLScheme,来实现app之间的互相调用。我们可以通过系统的OpenURL来打开注册了URLScheme的app,并可以传递一些参数。原理理解2:一个APP的URLSche

2015-09-30 16:10:01 1585

原创 《幸运大转盘》代码分享

《幸运大转盘》有一句代码是这样的:self.rotateView.transform = CGAffineTransformMakeRotation(-angle);它出现在延迟派遣消息 dispatch_after 里面,然而你真的看懂它了吗?本文将揭秘这句代码的真相!红字黄底标出!#import "ViewController.h"#import "ZHYView.

2015-09-26 01:26:09 4903

原创 awakeFromNib与viewDidLoad的区别

当一个nib文件对应两个类,File's Owner的class为CZViewController,Objects下的View对应的为CZView时:【如果不好理解的话,你可以这么理解:           Main.storyboard关联了ViewController类,而ViewController中有一个UIView,这个UIView对应的是类CZView。】 1. 用在何

2015-09-26 01:25:01 986

原创 手势识别功能(Gesture Recognizer)

1.手势识别概念a. iOS 3.2之后,苹果推出了手势识别功能(GestureRecognizer),在触摸事件处理方面,大大简化了开发者的开发难度。b.为了完成手势识别,必须借助于手势识别器----UIGestureRecognizer,利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势。2.

2015-09-23 18:20:12 2046

原创 多点触控及一个华丽的Demo

1.触摸过程一次完整的触摸过程,会经历3个状态:触摸开始:-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event触摸移动:-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event触摸结束:-(void)touchesEnded:(

2015-09-22 01:36:33 1148

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除