IOS
文章平均质量分 63
Mic.Liu
这个作者很懒,什么都没留下…
展开
-
IOS KVO
一,概述KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。二,使用方法系统框架已经支持KVO,所以程序员在使用的时候非常简单。1. 注册,指定被观察者的属性,2. 实现回调方法3. 移除观察三原创 2013-05-31 02:20:46 · 486 阅读 · 0 评论 -
IOS的MVC模式
ocoa程序设计中的 模型-视图-控制器(MVC)范型。 什么是MVC?M、V、C之间的交流方式是什么样子的?理解了MVC的概念,对cocoa程序开发是至关重要的。 一、MVC的概念MVC是Model-VIew-Controller,就是模型-视图-控制器,这些都是什么东西呢? MVC把软件系统分为三个部分:Model,Vie原创 2013-05-30 00:38:16 · 838 阅读 · 0 评论 -
UIView的AutoSizing
若app支持旋转(rotation),那么几乎一定会涉及UIView的Autosizing问题。Autosize有2种方法:一是在NB的size inspectator property panel里设置;一是用代码设置uiview的autoresizingMask属性;注意: 对于margin,在NB里的设置和用代码设置逻辑上是相反的。例子:原创 2013-10-02 21:25:26 · 899 阅读 · 0 评论 -
NSUserDefaults standardUserDefaults的使用
本地存储数据简单的说有三种方式:数据库、NSUserDefaults和文件。NSUserDefaults用于存储数据量小的数据,例如用户配置。并不是所有的东西都能往里放的,只支持:NSString,NSNumber, NSDate, NSArray, NSDictionary,详细方法可以查看类文件。NSUserDefaults standardUserDefaults用来记录原创 2013-10-02 21:58:18 · 1010 阅读 · 0 评论 -
CGContextRef相关介绍
quartz 是主要的描画接口,支持基于路径的描画、抗锯齿渲染、渐变填充模式、图像、颜色、坐标空间变换、以及PDF 文档的创建、显示、和分析。UIKit 为Quartz 的图像和颜色操作提供了Objective-C 的封装。Core Animation 为很多UIKit 的视图属性声明的动画效果提供底层支持,也可以用于实现定制的动画。在调用您提供的drawRect:方法之前,视图对原创 2013-10-04 18:25:33 · 661 阅读 · 0 评论 -
RGB颜色表
常用RGB颜色表 RGB值 RGB值 RGB值黑色000#000原创 2013-10-10 12:33:51 · 837 阅读 · 0 评论 -
解决XCode中的AutoSizing不显示
看见有的新建工程后,需要进行自动调整view位置的时候,发现在[Show The Size Inspector]中的AutoSizing的属性不见了如图那么我就告诉大家如何设置大家说先打开[Show File inspector],这时你会发现在Interface Builder Document中的UseAutolayout处于checked状态如图那我们就把Use Auto原创 2013-10-19 18:10:37 · 2010 阅读 · 0 评论 -
AppDelegate相关问题
自己创建工程时,如果自己设置了启动初始化的ViewController,这时我们直接启动工程时就会看见我们设置的那个界面,但是有些不小心将AppDelegate的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法自己又改动原创 2013-10-20 21:50:19 · 527 阅读 · 0 评论 -
UIButton简介
1 创建UIButton *btn=[[UIButton alloc] init] ;或者UIButton *btn = [UIButton buttonWithType:(UIButtonType)];2 UIButton的UIButtonType UIButtonTypeCustom = 0, //这个可以用来自定义按钮 UIButtonTy原创 2013-11-02 21:04:13 · 627 阅读 · 0 评论 -
QuickTime的桌面录制
今天看见好多人竟然不知道Quicktime有桌面录制机能,我就简单的说一下我么打开QuickTime,进入菜单如图:点击录制之后我们会看到一个新的桌面,如图:我们点击那个红点,进入一下界面如图:按照提示,我们知道,这儿我们可以自定义的选取我们需要录制的屏幕范围,我们选中后会看到如图的画面:我们点击开始录制,我们就可以开始录制我们想要的桌面部分了原创 2013-11-02 21:17:41 · 514 阅读 · 0 评论 -
GCD教程(一):基本概念
什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GC原创 2013-11-07 00:17:16 · 656 阅读 · 0 评论 -
Dispatch Queue挂起
Dispatch Queue挂起dispatch queue可以被挂起和恢复。使用 dispatch_suspend函数来挂起,使用 dispatch_resume 函数来恢复。这两个函数的行为是如你所愿的。另外,这两个还是也可以用于dispatch source。一个要注意的地方是,dispatch queue的挂起是block粒度的。换句话说,挂起一个queue并不会将当前正原创 2013-11-07 00:22:36 · 608 阅读 · 0 评论 -
GCD教程(三):Dispatch Sources
何为Dispatch Sources简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。说的貌似有点不清不楚。我们到底讨论哪些事件类型?下面是GCD 10.6.0版本支持的事件:Mach port send right state changes.Mach p原创 2013-11-07 00:19:56 · 573 阅读 · 0 评论 -
GCD教程(二):多核心的性能(上)
概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)原创 2013-11-07 00:18:16 · 765 阅读 · 0 评论 -
GCD教程(二):多核心的性能(下)
对于同步执行,GCD提供了一个简化方法叫做dispatch_apply。这个函数调用单一block多次,并平行运算,然后等待所有运算结束,就像我们想要的那样:12345dispatch_queue_t queue =dispatch_get_global_qeueue(DISPATCH_QUEUE_PRIORI原创 2013-11-07 00:18:56 · 1262 阅读 · 0 评论 -
AppDelegate的详解
IOS 中的 AppDelegate.m/h 文件是很重要的呢,因为它是对 Application 的整个生命周期进行管理的。先明白,每个iPhone应用程序都有一个UIApplication,UIApplication是iPhone应用程序的开始并且负责初始化并显 示 UIWindow,并负责加载应用程序的第一个UIView到UIWindow窗体中。UIApplication的另一个任务原创 2013-11-08 18:07:56 · 726 阅读 · 0 评论 -
StoryBoard可能出现错误解决
如果我们看到我们的程序提示以下错误,并无法启动程序时,我们可以按照后面的讲解试着去解决Could not find a storyboard named 'Game' in bundle NSBundle 。。。。。。我这里的StoryBoard的名字是Game我们首先去一下截图的地方去看一下我们选中上面的项目之后我们会看到下面的界面我们点击加号进入以下界面原创 2013-11-08 23:14:21 · 1692 阅读 · 0 评论 -
如何创建UINavigationBar
CGRect aScreenRect = [[UIScreen mainScreen] bounds];//创建navbarUINavigationBar *nav = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, aScreenRect.size.width, 44)];//创建navbaritemUINavi原创 2014-05-21 12:30:25 · 431 阅读 · 0 评论 -
如何生成ipa文件
StepOne:首先将工程clean一遍StepTwo:原创 2014-05-23 04:38:53 · 571 阅读 · 0 评论 -
定制iOS 7中的导航栏和状态栏
近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7。最新的iOS 7外观上有大量的改动。从开发者的角度来看,导航栏和状态栏就发生了明显的变化。状态栏现在是半透明的了,这也就意味着导航栏会显示在状态栏后面。有些情况下,导航栏的背景图片可以延伸显示到状态栏后面。 之前我曾经写过一篇关于如何定制导航栏的文章。不过现在是时候对其进行更新了。下面就是本文将要介绍的内容:原创 2014-05-25 00:23:11 · 411 阅读 · 0 评论 -
iphone/ipad开发ICON设计再续
我们的辛辛苦苦做出来的应用程序在iPhone上的表示仅仅是一个图标,对这个图标不可以不谨慎对待,不能因为大小不对头这些小问题而失真啊什么的。那么,你知道图标的大小和格式吗?本文适用于iPhone,iPod Touch,iPad等各种iOS设备。图片大小 (px)文件名用途重要程度512x原创 2014-05-28 22:40:11 · 511 阅读 · 0 评论 -
IOS 设备开发ICON设计
原创 2014-05-28 21:33:06 · 508 阅读 · 0 评论 -
NSTimer实现动画
一、使用NSTimer实现动画1.新建empty AppLication,添加HomeViewController页面, iphone.png图片2.在 HomeViewController.xib中添加Image View,并调整其大小;再添加一个Slider控件 3.HomeViewController.h代码: #import @int原创 2014-05-29 02:59:21 · 554 阅读 · 0 评论 -
关于NSMutableArray的排序
1、数值类型NSMutableArray* arr = [NSMutableArrayarrayWithObjects: [NSNumber numberWithInt:0], [NSNumber numberWithInt:3],原创 2014-05-28 23:09:58 · 4293 阅读 · 0 评论 -
UIImageView的常用事项
UIImageView,顾名思义,是用来放置图片的。使用Interface Builder设计界面时,当然可以直接将控件拖进去并设置相关属性,这就不说了,这里讲的是用代码。1、创建一个UIImageView:创建一个UIImageView对象有五种方法:UIImageView *imageView1 = [[UIImageView alloc] init];UIImageVi原创 2014-05-28 17:54:16 · 577 阅读 · 0 评论 -
iOS动画浅析
iOS动画浅析在iOS中动画实现技术主要是:Core Animation。 Core Animation负责所有的滚动、旋转、缩小和放大以及所有的iOS动画效果。其中UIKit类通常都有animated:参数部分,它可以允许是否使用动画。 Core Animation主要是使用我们知道每个UIView都关联到一个CALayer对象,CALayer是Cor原创 2014-05-29 03:11:48 · 571 阅读 · 0 评论 -
UIImageView响应点击事件
方法1:UIImageView *testImageView = [[UIImageView alloc] init......................testImageView.userInteractionEnabled = YES; UITapGestureRecognizer *singleTap = [[UITapGestureRecog原创 2014-05-31 16:49:43 · 565 阅读 · 0 评论 -
NSTimer用法小结
Timers的替代方法如果只是要延迟消息的发送,可以使用NSObject的方法- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay- (void)performSelectorOnMainThread:(SEL)aSelect原创 2014-05-31 16:51:54 · 504 阅读 · 0 评论 -
iOS的手势识别模型
iOS的手势识别模型其实是一个状态机所有手势识别从一个可能状态(UIGestureRecognizerStatePossible)开始,然后开始分析、识别手势,如果识别失败将会进入失败状态 (UIGestureRecognizerStateFailed)。如果识别成功,进入成功状态(UIGestureRecognizerStateRecognized)对于连续性的手势,手势识别从P原创 2014-06-01 11:32:04 · 604 阅读 · 0 评论 -
IOS 系统消息
一、键盘1、UIKeyboardWillShowNotification-将要弹出键盘2、UIKeyboardDidShowNotification-显示键盘3、UIKeyboardWillHideNotification-将要隐藏键盘4、UIKeyboardDidHideNotification-键盘已经隐藏5、UIKeyboardWillChangeFrameNotific原创 2014-06-01 08:03:34 · 620 阅读 · 0 评论 -
重写UIImageView的image属性
效果:当你重写了UIImageView的image属性后你就会对UIImageView怎么显示图片了如指掌了:) 源码:UIImageView.h + UIImageView.m//// LiveImageView.h// Progress//// Copyright (c) 2014年 Y.X. All rights rese原创 2015-03-21 15:16:03 · 1396 阅读 · 0 评论 -
CABasicAnimation 介绍
CABasicAnimation 自己只有三个property fromValue toValue ByValue当你创建一个 CABasicAnimation 时,你需要通过-setFromValue 和-setToValue 来指定一个开始值和结束值。 当你增加基础动画到层中的时候,它开始运行。当用属性做动画完成时,例如用位置属性做动画,层就会立刻 返回到它的初原创 2015-04-04 03:51:45 · 318 阅读 · 0 评论 -
CABasicAnimation 介绍
CABasicAnimation 自己只有三个property fromValue toValue ByValue当你创建一个 CABasicAnimation 时,你需要通过-setFromValue 和-setToValue 来指定一个开始值和结束值。 当你增加基础动画到层中的时候,它开始运行。当用属性做动画完成时,例如用位置属性做动画,层就会立刻 返回到它的初原创 2015-04-04 03:50:16 · 334 阅读 · 0 评论 -
CABasicAnimation介绍
CABasicAnimation 自己只有三个property fromValue toValue ByValue当你创建一个 CABasicAnimation 时,你需要通过-setFromValue 和-setToValue 来指定一个开始值和结束值。 当你增加基础动画到层中的时候,它开始运行。当用属性做动画完成时,例如用位置属性做动画,层就会立刻 返回到它的初原创 2015-04-04 13:32:20 · 267 阅读 · 0 评论 -
UIView的刷新
大家应该都比较清楚如果想要刷新一个UIView的话,调用它的setNeedsDisplay即可。问题是,当你调用了一个UIView的setNeedsDisplay之后,该UIView何时才得到刷新?经过调研发现,应该是在一个runloop的最后阶段刷新。什么是一个runloop呢?个人认为可以简单的理解为了一个事件的处理过程。例如用户点击屏幕是两个runloop。原创 2015-04-05 17:59:25 · 632 阅读 · 0 评论 -
UIView的自动调整
自动尺寸调整行为当您改变视图的边框矩形时,其内嵌子视图的位置和尺寸往往也需要改变,以适应原始视图的新尺寸。如果视图的autoresizesSubviews属性声明被设置为YES,则其子视图会根据autoresizingMask属性的值自动进行尺寸调整。简单配置一下视图的自动尺寸调整掩码常常就能使应用程序得到合适的行为;否则,应用程序就必须通过重载layoutSubviews方法来提供自己的原创 2015-04-07 07:15:13 · 1601 阅读 · 0 评论 -
core bluetooth
去App Store搜索并下载“LightBlue”这个App,对调试你的app和理解Core Bluetooth会很有帮助。================================Core Bluetooth for iOS 6CoreBluetooth的API是基于BLE4.0的标准的。这个框架涵盖了BLE标准的所有细节。仅仅只有新的iOS设备和Mac是和B原创 2015-04-13 21:59:14 · 361 阅读 · 0 评论 -
IOS bluetooth
前言上一次我们研究完iBeacon,发现iBeacon是基于蓝牙4.0的一个封装而已。那么,今天我们来研究ios的蓝牙4.0的应用。最出名的app当属lightblue,我们不妨来仿写一个lightblue,这样基本的ios蓝牙编程就算入门了。基本理论框架与概念在ios中使用蓝牙技术,会用到CoreBluetooth框架。里面对设备有2个定义:周边(peripeheral)原创 2015-04-16 19:33:20 · 568 阅读 · 0 评论 -
NSPredicate
简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。定义(最常用到的方法):[cpp] view plaincopyNSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...];原创 2015-05-02 12:40:39 · 321 阅读 · 0 评论 -
XCode6追加PCH文件 Objective C、Swift
XCode追加PCH文件Objective C:1、新建PCH文件2、找到Build Settings,进行下图操作3、执行Clean,然后就可以使用PCH文件了执行完上述操作,可以在OC工程下使用PCH的文件,但是在Swift下还是引用不到。执行下述操作便可以在Swift环境下使用PCH文件4、swift引用OC过度原创 2015-05-07 19:48:42 · 960 阅读 · 0 评论