IOS新手快速入门
以实例的方式深入浅出的方式介绍IOS开发入门,理论联系实际,附有代码下载链接,帮助新手快速入门
Vicent_Z
态度决定一切,细节决定成败!
展开
-
IOS开发(108)之Quartz 2D绘图实例演示
1 前言本节将用一个简单的项目介绍如何用Quartz 2D绘制直线,矩形,椭圆和移动UIImage图片,通过触摸屏幕触发事件来决定起点和终点,废话多说,让我们来看看其是如何实现的。2 详述这个例子我们要创建一个类别,用于处理随即颜色的:UIColor (ZYRandom)#import "UIColor+ZYRandom.h"@implementation UIColo原创 2013-06-09 16:13:08 · 3111 阅读 · 0 评论 -
IOS开发(107)之Quartz 2D绘图
1 前言使用Quartz 2D绘图时候,我们常会用到UIView的子类,想该类的drawRect:方法中添加Quartz函数调用。每次需要重绘视图时候都会调用该方法。2 详述在Quartz 2D中,和其他Core Graphics中一样,绘图是在图形上下文中进行的,通常,只称上下文。绘图时候,我们需要检索当前上下文,使用此上下文进行各种Quartz图形调用,并且让此上下文负责将图形呈现原创 2013-06-08 20:13:48 · 5558 阅读 · 4 评论 -
IOS开发(106)之Quartz和OpenGL绘图初窥
1 前言在之前我们学过的东西中已经可以构造各式各样的应用界面了,然后有些应用,仅仅使用UIKit内置组件是无法完全实现的。有时候应用程序需要自定义绘图,这个时候我们要依靠两个库来满足我们的绘图需求。一个库是Quartz 2D,他是Core Graphics框架的一部分;另一个库是OpenGL ES,他是跨平台的图形库。OpenGL ES是 OpenGL的简化版本。是它的一个子集。2 详述原创 2013-06-08 19:08:54 · 3080 阅读 · 0 评论 -
IOS开发(105)之处理不活动状态
1 前言应用程序遇到的最简单的状态是从活动过渡到不活动,然后再返回到活动。今天我们进来用一个例子来看看其具体应用。2 详述这张的内容比较简单,就直接上代码了ZYViewController.m//// ZYViewController.m// State Lab//// Created by zhangyuc on 13-6-8.// Copyright原创 2013-06-08 13:43:37 · 2200 阅读 · 0 评论 -
IOS开发(104)之程序执行状态更改
1 前言上节我们介绍了程序执行的状态,从例子中我们可以发现处理这些状态更改的时候有明确的策略可以遵循,这次我们就来介绍一下。2 详述2.1 活动-》不活动使用applicationWillResignActive:/UIApplicationWillResignActiveNotification来“暂停”应用程序的显示。确保工作中不需要及时的用户输入,因为应用程序在一段时间内不会原创 2013-06-08 11:26:24 · 2223 阅读 · 0 评论 -
IOS开发(103)之后台处理
1 前言IOS4 之后提供了后台处理,在后台运行应用程序,在一些情形下甚至可以在用户按下Home按钮之后在后台运行。2 详述IOS可以在用户按下Home按钮后将应用程序添加到暂停状态。这种暂停执行的状态在概念上类似于将Mac设置为休眠模式。应用程序的所有工作内存都在RAM中,在暂停时它完全不执行。因此,切换回这样的应用程序的速度非常快。系统提供了多种方式,通过UIApplication原创 2013-06-08 10:45:51 · 1965 阅读 · 0 评论 -
IOS开发(102)之GCD与block结合应用
1 前言前两章我们介绍了GCD和Block,这次我们将二者结合到一起,看看他们之间合体之后到底会发挥多大的效果0 0,让我们拭目以待!2 详述还记得之前的那个SlowWorker项目吗?翻出来找到他,现在我们开始修改它。从而让我们的项目运行时间缩短处理时间,使之前无需同时进行的两个方法,并发进行,提高效率,废话少说,上代码。在原来的基础上我们添加了一个进度条UIActivityIn原创 2013-06-07 19:53:53 · 1828 阅读 · 1 评论 -
IOS开发(101)之程序块block初窥
1 前言以前也有介绍过GCD,但是感觉不够深入,今天我们来重新认识一下这个概念,GCD即Grand Central Dispatch(中文直译宏伟的中心派遣o(╯□╰)o)。它的一个重要概念是队列。系统提供了许多预定义的队列,包括可以保证始终在主席那成上执行其工作的队列。2 详述GCD严格遵循FIFO(先进先出)原则。添加到GCD队列的工作始终按照这个加入队列的顺序启动。尽管如此,他们原创 2013-06-07 16:38:48 · 1817 阅读 · 0 评论 -
IOS开发(100)之线程初窥
1 前言本章将介绍苹果为简化多线程而推出的一种新方法,成为Grand Central Dispatch(简称GCD),它提供了一套全新的API,可以将应用程序需要执行的工作拆分成为可分散在多个线程和多个CPU上的更小的块,从而解决了用户体验问题。2 详述2.1 模拟好使操作接下来我们模仿一下这个耗时操作建立一个项目,当点击Start Working的时候会等待10秒然后显示内容,并原创 2013-06-07 12:53:58 · 2354 阅读 · 0 评论 -
IOS开发(99)之内存缓存
这篇文章将只介绍一下将内容缓存到内存中,下一篇文章就介绍一下在iOS磁盘上缓存内容。使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求。内存缓存我们可以使用sdk中的NSURLCache类。NSURLRequest需要一个缓存参数来说明它请求的url何如缓存数据的,我们先看下它的转载 2013-05-21 16:18:49 · 2911 阅读 · 7 评论 -
IOS开发(98)之非XIB文件的自定义视图
1 前言上一节我们谈到用XIB文件构建的自定义视图,今天我们来介绍一下,不借助XIB文件的自定义视图,共同学习一下。2 详述目录结构这次我们不建立XIB文件,而是直接的Objective-C文件来代替XIB文件。ZYCustomView.m:- (void)drawRect:(CGRect)rect{ CGRect bounds = [self bou原创 2013-05-21 13:33:38 · 3229 阅读 · 0 评论 -
IOS开发(97)之自定义视图之使用XIB自定义一个UIView
1 前言Xcode中集成的BI中的控件十分丰富,但有时候难免不能满足我们的需求,今天我们来学习一下如何使用XIB自定义一个UIView,做到复用的作用。2 详细流程目录视图:2.1 新建一个single view application类型的iOS application工程,名字取为CustomView,如下图,我们不往CustomViewViewController.x原创 2013-05-21 10:38:51 · 15971 阅读 · 5 评论 -
IOS开发(96)之Core Data
Core Data是一个功能强大的层,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互。Core Data将数据库行转换为OC对象(托管对象)来实现,这样无需任何SQL知识就能操作他们。Core Data位于MVC设计模式中的模型层,一般需要在设备上存储结构化数据时,考虑使用SQLite或是序列化等方法,而Core Data是这两种方法的混合体,并转载 2013-05-20 17:04:09 · 1748 阅读 · 0 评论 -
IOS开发(95)之百度地图API环境搭建
1 前言由于工作需要,要开始捣腾百度地图了,今天上午初始牛刀,各种碰壁,无奈之下,中午睡了一觉,养精蓄锐,以备下午大战三百回合,所幸下午中午把百度地图Demo捣腾出来了,在此与大家分享,环境搭建教程,菜鸟专用,大神勿喷!本文旨在帮助新手快速搭建ios版百度地图,官网有相关教程,可是太旧了,现在的xcode都更新到了4.6,他的教程应该是在4.3之前吧。估计新手在搭建的时候一定会遇到错误,按原创 2013-05-20 15:26:38 · 5685 阅读 · 4 评论 -
IOS开发(94)之SQLite数据库
SQLite是MySQL的简化版,更多的运用与移动设备或小型设备上。SQLite的优点是具有可移植性,它不需要服务器就能运行,同时,它也存在一些缺陷,首先,没有提供简单的数据库创建方式,必须手工创建数据库,其次,SQLite没有面向对象接口,必须使用依赖于C语言代码的API。相对于OC,这套API既不那么优雅,也更难使用。当相比于用文件进行存储,还是更推荐使用SQLite进行数据存储。转载 2013-05-17 17:17:06 · 1621 阅读 · 0 评论 -
iOS开发(93)之常用加密方法(aes、md5、base64)
iOS常用加密方法(aes、md5、base64)1、AES加密NSData+AES.h文件[plain] view plaincopy// // NSData-AES.h // Smile // // Created by 周 敏 on 12-11-24. // Copyright (c) 2012转载 2013-05-17 16:15:49 · 3409 阅读 · 0 评论 -
iOS开发(92)之 plist文件的读写
在做iOS开发时,经常用到到plist文件, 那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件。文件是xml格式的。Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息我们创建一个项目来学习plist文件的读写。转载 2013-05-17 15:25:59 · 2089 阅读 · 0 评论 -
IOS开发(91)之ZBar 条形码二维码扫描控件
在我们开发ios应用时,尤其是电子商务类应用,时常遇到条形码扫描的业务需求,幸运的已经有开源的SDK供我们使用──条形码的SDK for ios,下面介绍一下这个开源的SDK的使用方法: 免费的条形码是zbar,下载地址是:http://zbar.sourceforge.net 具体的实现过程如下:第一步:下载zbar的sdk。第二步:创建工程转载 2013-05-15 17:33:31 · 9720 阅读 · 4 评论 -
IOS开发(90)之动画视图的旋转
1 前言今天我们来学习如何创建一个旋转仿射变换并使用 UIView 类的动画方法来执行旋转动作。2 代码实例ZYViewController.m- (void)viewDidLoad{ [super viewDidLoad]; UIImage *xcodeImage = [UIImage imageNamed:@"Xcode.png"]; self原创 2013-05-15 13:30:11 · 10055 阅读 · 0 评论 -
IOS开发(89)之动画之视图的缩放
1 前言今天我们学习一下如何为你的视图创建一个仿射缩放变换并使用 UIView 的动画方法来执行缩放变换。2 代码实例ZYViewController.m:- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view, typically fro原创 2013-05-15 11:19:34 · 6215 阅读 · 0 评论 -
IOS开发(88)之动画之视图的移动
1 前言今天我们来学习使用 UIView 的动画方法来移动你的视图。2 代码实例ZYViewController.m:- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIImag原创 2013-05-15 10:53:40 · 2749 阅读 · 0 评论 -
IOS开发(87)之Strong与Weak的理解
转:http://stackoverflow.com/questions/9262535/explanation-of-strong-and-weak-storage-in-ios5 觉得讲的很容易理解 The difference is that an object will be deallocated as soon as there are no strong point转载 2013-05-15 09:50:03 · 1544 阅读 · 0 评论 -
IOS开发(86)之旋转图形
1 前言使用 CGAffineTransformMakeRotation/CGContextRotateCTM函数来创建一个仿射旋转变换。2 代码实例ZYViewControllerView.m- (void)drawRect:(CGRect)rect{ /* Create the path first. Just the path handle. */ C原创 2013-05-15 09:24:10 · 1497 阅读 · 0 评论 -
IOS开发(85)之缩放图像
1 前言使用 CGAffineTransformMakeScale/CGContextScaleCTM 函数创建一个仿射缩放变换。2 代码实例ZYViewControllerView.m- (void)drawRect:(CGRect)rect{ CGMutablePathRef path = CGPathCreateMutable(); CGRect re原创 2013-05-15 09:19:15 · 1278 阅读 · 0 评论 -
IOS开发(84)之移动图形
1 前言使用 CGAffineTransformMakeTranslation 函数创建一个仿射位移变换(affine translation transformation)。将被绘制到图形环境上的一切,到一个新的位置,而不需要修改你的绘图代码。2 代码实例ZYViewControllerView.m- (void)drawRect:(CGRect)rect{ CG原创 2013-05-15 09:14:26 · 1276 阅读 · 0 评论 -
IOS开发(83)之为形状增加阴影
1 前言使用 CGContextSetShadow 过程,为绘制在图形环境上的形状应用阴影。CGContextSetShadowWithColor 过程:这个过程接受的参数和 CGContextSetShadow 完全相同,不过加了一个 CGColorRef 类型的参数,用于设 置阴影的颜色。2 代码实例ZYViewControllerView.m-(void)dr原创 2013-05-14 16:53:41 · 2025 阅读 · 0 评论 -
IOS开发(82)之绘制矩形
1 前言用 CGPathAddRect 向路径中添加一个矩形,然后在图形环境上绘制这条路径。2 代码实例ZYViewControllerView.m- (void)drawRect:(CGRect)rect{ //创建图形路径句柄 CGMutablePathRef path = CGPathCreateMutable(); //设置矩形的边界原创 2013-05-14 16:27:41 · 2139 阅读 · 0 评论 -
IOS开发(81)之构造路径
1 前言构造和绘制路径,能够在图形环境上画任意形状.2 代码实例ZYViewControllerView.m- (void)drawRect:(CGRect)rect{ //创建路径 创建一个新的 CGMutablePathRef 类型的可变路径并返回其句柄。 CGMutablePathRef path = CGPathCreateMutable();原创 2013-05-14 15:44:33 · 2037 阅读 · 0 评论 -
IOS开发(80)之画线
1 前言得到图形环境,然后用 CGContextMoveToPoint 和 CGContextAddLineToPoint 函数来画线。2 代码实例ZYViewControllerView.m- (void)drawRect:(CGRect)rect{ [self drawRooftopAtTopPointof:CGPointMake(160.0f, 40.0f)原创 2013-05-14 14:05:06 · 3750 阅读 · 0 评论 -
IOS开发(79)之绘制图像
1 前言使用 UIImage 类加载一个图像,然后用图像的 drawInRect:方法将它绘制到图形环境上。UIImage 类提供了不同的类方法 和实例方法,用于加载你的图像。下面是 iOS 中的一些比较重要的方法:imageNamed: 类方法加载图片(如果加载成功还会缓存图像)。参这个方法的参数是 bundle 中的图像名字,比如 Tree Texture.png。原创 2013-05-14 13:28:37 · 1460 阅读 · 0 评论 -
IOS开发(78)之绘制文本
1 前言从今天起我们开始学习IOS的图形和动画。在 Cocoa Touch 中,程序是由“窗口”和“视图”组成。一个带有 UI 的程序至少有一个窗口,这个窗口至少 包括一个到多个视图。在Cocoa Touch中,一个窗口就是一个UIWindow的实例。一般的,程序会打开到主窗 口,然后程序员会向这个窗口添加视图,来展示 UI 的不同的部分:例如按钮,文本,图像和自定义控件。所 有这些 UI原创 2013-05-14 11:09:38 · 1832 阅读 · 0 评论 -
IOS开发(77)之iOS高级内存管理:比较__unsafe_unretain、__strong、__weak、__autoreleasing
在前面分析了nomantic、copy、retain等属性之后,在教新的XCode版本中,我们又经常会看到__unsafe_unretain、__strong、__weak、__autoreleasing这四种属性,那么他们有什么用呢?__unsafe_unretain、__strong、__weak、__autoreleasing是出现在 LLVM 编译器 3.0版本之后。而__unsa转载 2013-05-14 09:33:02 · 1444 阅读 · 0 评论 -
IOS开发(76)之 NSNotification的使用
如果在一个类中想要执行另一个类中的方法可以使用通知1.创建一个通知对象:使用notificationWithName:object: 或者 notificationWithName:object:userInfo: NSNotification* notification = [NSNotification notificationWithName:kImageNotific转载 2013-05-14 09:22:50 · 1285 阅读 · 0 评论 -
IOS开发(75)之把 JSON 数据转化成 Arrays 或者 Dictionaries
1 前言通过 NSJSONSerialization 这个类的 JSONObjectWithData:options:error:方法来实现,把JSON 数据解析出来放在数据或者字典里面保存。2 代码示例TestDemo.m-(void)convseFromJson{ NSMutableDictionary *dictionary = [[NSMutableDict原创 2013-05-13 17:25:59 · 4599 阅读 · 0 评论 -
IOS开发(74)之把 Array 和 Dictionaries 序列化成 JSON 对象
1 前言通过 NSJSONSerialization 这个类的 dataWithJSONObject:options:error:方法来实现,Array 和 dictionary 序列化成 JSON 对象。方便在网络中传输。2 代码实例TestDemo.m-(void)converseToJson{ NSMutableDictionary *dictionary =原创 2013-05-13 17:12:50 · 2379 阅读 · 1 评论 -
IOS开发(73)之放大和缩小的手势监听和处理
1 前言UIPinchGestureRecognizer捕获并处理类似放大和缩小的手势动作。2 代码实例ZYViewController.m- (void)viewDidLoad{ [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; CGRect labe原创 2013-05-13 16:21:40 · 2167 阅读 · 0 评论 -
IOS开发(72)之监听捕获轻击的手势动作
1 前言使用UITapGestureRecognizer 监听捕获用户点击了屏幕的事件。2 代码实例ZYViewController.m- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view, typically from a ni原创 2013-05-13 15:53:20 · 2079 阅读 · 0 评论 -
IOS开发(71)之长按手势
1 前言UILongPressGestureRecognizer 用来监听并捕获到用户用手指长久按住屏幕的某一个地方的手势事件。2 代码实例ZYViewController.m- (void)viewDidLoad{ [super viewDidLoad]; self.view.backgroundColor = [原创 2013-05-13 15:32:33 · 2684 阅读 · 0 评论 -
IOS开发(70)之拖拽手势
1 前言利用 UIPanGestureRecognizer 这个手势识别器, 来实现图层的拖拽。2 代码实例ZYViewController.m@synthesize helloWorldLabel;@synthesize panGestureRecognizer;- (void)viewDidLoad{ [super viewDidLoad];原创 2013-05-13 12:39:05 · 2444 阅读 · 0 评论 -
IOS开发(69)之捕获旋转的手势
1 前言创建一个 UIRotationGestureRecognizer 的监视器,然后在绑定到你的视图中,用来捕获用户利用手指在屏幕上做旋转的手势 。UIRotationGestureRecognizer 这个类有一个 rotation 的属性,这个属性可以用来设置旋转的方向和旋转的弧 度 。 当 用 户 的 手 势 开 始 和 结 束 的 时 候 分 别 会 用 到 如 下 的 两 个原创 2013-05-13 09:49:44 · 1668 阅读 · 0 评论