04 2014 档案

摘要:在苹果的Mac OSX 和IOS开发的API中有三个不同的"通知",包括:广播通知,本地通知和推送通知。本地通知只是应用所在设备上给用户通知,而推送通知是远程通知,他是由远程服务器推送过来的本节主要是讲的本地通知,虽然本地通知并没有任何的网络通信,但是他在编程方面与后面要介绍的推送通知非常相似。我们... 阅读全文
posted @ 2014-04-27 14:52 haibo wang 阅读(371) 评论(0) 推荐(0)
摘要:1.调用IOS6苹果地图 IOS6中实现这个功能需要使用Map Kit中的MKPlaceMark和MKMapItem两个类,因此我们需要在工程中添加MapKit.framework主要代码如下: 1 - (IBAction)geocodeQuery:(id)sender { 2 3 ... 阅读全文
posted @ 2014-04-25 15:22 haibo wang 阅读(706) 评论(0) 推荐(0)
摘要:IOS应用程序中使用Map Kit API开发地图应用程序。其核心是MKMapView类的使用。我们可以设置地图显示方式,控制地图,可以在地图上添加标注。1.显示地图 在Map Kit API中显示地图的师徒是MKMapView,他的委托协议是MKMapViewDelegate。Map Kit AP... 阅读全文
posted @ 2014-04-25 14:54 haibo wang 阅读(345) 评论(0) 推荐(0)
摘要:1.定位服务 现在的移动设备很多都提供定位服务,IOS设备提供3种不同定位途径: (1)WiFi定位,通过查询一个WiFi路由器的地理位置的信息,比较省电;IPhone,IPod touch和IPad都可以采用。 (2)蜂窝式移动电话基站定位,通过移动运营商基站定位,只有Iphone,3G版本的IP... 阅读全文
posted @ 2014-04-25 11:11 haibo wang 阅读(576) 评论(0) 推荐(0)
摘要:由于最近才接触到IOS,苹果已经建议storyboard来搭建所有界面了,于是我也追随时尚,直接开始使用storyboard。(不料在涉及到页面跳转的时候,遇到的问题是:点击后没有任何反应)众所周知,在storyboard中,界面的跳转是通过segue来实现的,利用它,省去了方法内写入跳转的代码。一... 阅读全文
posted @ 2014-04-24 16:57 haibo wang 阅读(251) 评论(0) 推荐(0)
摘要:在IOS的用户接口向导中,苹果提供了另外一种显示警告框的手法,叫做UIActionSheet.它和UIAlertView比起来不会显得过于急切和紧张。而是很温和地在继续流程之前给用户提供了诸多选择。1.普通的sheet框使用 同UIAlertView一样,sheet也可以很简单的创建并且显示.1 -... 阅读全文
posted @ 2014-04-22 10:49 haibo wang 阅读(643) 评论(0) 推荐(0)
摘要:1.普通警告框IOS的SDK中提供了一个方便的类库UIAlertView,配合着不同参数来使用此类可以做出大多数的警告框,如下代码是IOS最简单的警告框。1 UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"你好" message:@... 阅读全文
posted @ 2014-04-19 13:09 haibo wang 阅读(7212) 评论(0) 推荐(0)
摘要:1.简单地取值控件示例我们要做的一个UITextFiled,当点击UITextFiled,出现一个UIPick取值的页面,可以选择性别,在viewDidLoad中写下//sexPicker UIPickerView *sexPicker=[[UIPickerView alloc]init]; ... 阅读全文
posted @ 2014-04-18 13:12 haibo wang 阅读(987) 评论(0) 推荐(0)
摘要:在表视图的删除操作中,每次只能够对其中一个单元进行删除,如果想要同时删除多条记录,不得不挨个地进行标准的删除操作所以如果能够实现多选的机制,无论是删除还是其他功能的嫁接,都会变得更加方便当UITableView进入编辑模式时,默认会将所有的单元行向右缩进。不过缩进后多出的空间是否显示系统图标以及显示... 阅读全文
posted @ 2014-04-17 15:49 haibo wang 阅读(511) 评论(0) 推荐(0)
摘要:除了每个单元行左边的删除和新增图标,UITableView还支持在单元行的右侧显示一个供用户拖拉调整排序位置的控件。不过如果要显示此控件,UITableView的数据源需要实现以下的方法。-(void)tableView:(UITableView *)tableview moveRowAtIndex... 阅读全文
posted @ 2014-04-17 15:01 haibo wang 阅读(635) 评论(0) 推荐(0)
摘要:表视图的新增功能和删除功能虽然目的不同,但是工作流程是相似的下面列出在处理新增的回调函数时,与删除所不同的逻辑部分代码。显示下过如下:#pragma mark#pragma mark Table View data source//setEditing:animated:后被调用//询问具体Cell... 阅读全文
posted @ 2014-04-17 14:43 haibo wang 阅读(262) 评论(0) 推荐(0)
摘要:默认的,如果表视图支持编辑,那用户可以通过两种方式来删除某些行,其一为单击左侧的红色按钮后行右侧显示“Delete”按钮,其二为在单元行上的手指向左滑动,“Delete”按钮也会出现供用户单击。无论哪种方式,只要用户单击了“Delete”,开发者需要确保数据源的更新和处理界面上单元行的消失。根据这个... 阅读全文
posted @ 2014-04-17 14:08 haibo wang 阅读(587) 评论(0) 推荐(0)
摘要:UITableViewCell的自定义往往需要自建一个UITableViewCell的子类后进行作业。开发者可以选择通过xib或者直接在UITableViewCell的布局中进行UITableViewCell的自定义。这节会采用更直观易懂的xib方式。(1)新建一个UITableViewCell的子... 阅读全文
posted @ 2014-04-17 11:14 haibo wang 阅读(595) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/syxchina/archive/2012/10/11/2720257.html1 原因Ios默认使用utf-8格式编码,所以中文在IOS中默认排序是不可以用的,但IOS也支持使用笔画排序的(采用NSString的localizedCompare,... 阅读全文
posted @ 2014-04-16 17:00 haibo wang 阅读(512) 评论(0) 推荐(0)
摘要:当数据量特别大时,简单地以role进行分段,对实际查找的效率提升并不大。就像上一节开头所说,开发者可以根据球员名字的首字母进行分段,且分成26段。由于段数较多,可以使用UITableView的索引机制,在界面的右侧展示一条垂直的字母列表,使用户可以快速地在段与段之间进行切换。新建一个继承自Simpl... 阅读全文
posted @ 2014-04-16 16:58 haibo wang 阅读(684) 评论(0) 推荐(0)
摘要:我们可以采用名字分段法,名字分段会在之后的小节中显示,这是转而使用球员的角色分段发,以最直接的入手点讲解好UITableView的分段使用方法。本节示例时基于上节的SimpleTableViewController可以作为这里的父类,创建一个名为SectionTableViewController的... 阅读全文
posted @ 2014-04-16 15:18 haibo wang 阅读(426) 评论(0) 推荐(0)
摘要:表视图继承自UIScrollView,所以有着大多UIScrollView的操作特性,诸如手指控制内容的滚动,内容视图到顶端或者低端时的自动反弹等。配合UINavigationController的导航特性,表视图可以将大量有一定规则顺序的数据,完整的呈现到客户端上。 一般,开发者可以将UITab... 阅读全文
posted @ 2014-04-16 12:47 haibo wang 阅读(376) 评论(0) 推荐(0)
摘要:下面介绍pageControl结合ScrollView实现连续滑动翻页的效果,ScrollView我们在应用开发中经常用到,以g这种翻页效果还是很好看的,如下图所示:通过这个例子,我们重点学习UIScrollView。UIScrollView滚动的效果主要的原理是修改他的坐标,准确的讲是修改原点坐标... 阅读全文
posted @ 2014-04-16 09:55 haibo wang 阅读(850) 评论(0) 推荐(0)
摘要:在实际开发中,对于开发者来说,更多的还是使用“自定义”按钮。将“按钮”对象的类型设置成UIButtonTypeCustom。这样一来,按钮的所有元素都将由开发者来配置和自定义。对于一个自定义按钮来说,他的层次从上到下以此是按钮标题,按钮图片和按钮背景图,开发者常使用设置标题,图片和背景的三个API进... 阅读全文
posted @ 2014-04-15 15:38 haibo wang 阅读(312) 评论(0) 推荐(0)
摘要:分隔栏控件的系统默认式样一共有3种,分别是“普通式样”,"边框式样","条状式样"分隔栏控件中有一个momentary属性,默认时NO.当开发者配置成YES时,分隔栏控件不再有被选中状态,即使用户点击了任何一个分割选项,选项也会像普通按钮那般只是待到手指离开屏幕时恢复到普通状态。一般的分割栏数量都不... 阅读全文
posted @ 2014-04-15 14:49 haibo wang 阅读(1276) 评论(0) 推荐(0)
摘要:UITextField控件的诸多特性都和UITextView相似,比如成为输入文本焦点时键盘自动显示,支持长按弹出动作选项,能够接收输入事件(开始输入,修改内容,结束输入和点击回车等)。1.特有的特但对于UITextField来说,他又有很多自己独有的特性: (1)placeholder. 当UI... 阅读全文
posted @ 2014-04-15 10:23 haibo wang 阅读(803) 评论(0) 推荐(0)
摘要:相对于UILabell所支持的较短文本内容,UITextView对于长文本的支持更好。UITextView能够以滚动的方式全部浏览到长文本,并且就像UILabel那样,从ISO6,他也提供了对NSAttributeString的支持.1.不可编辑的文本视图控件在类文件中声明一个UITextView的... 阅读全文
posted @ 2014-04-14 20:06 haibo wang 阅读(1494) 评论(0) 推荐(0)
摘要:虽说Label的中文翻译是标签标记,但它其实是一个静态文本内容的展现控件。一般来说,UILabel只是一个只读的文本视图,开发者可以利用UiLabel来展示内容长度有固定上限的文字内容。并且,UILabel支持多行显示,支持文体设置,支持简单排版,支持简单文字效果。UILabel会是开发者平时开发过... 阅读全文
posted @ 2014-04-13 21:13 haibo wang 阅读(372) 评论(0) 推荐(0)
摘要:1.UITabbarViewController标签试图控制器。由于标签页本就起着分类的作用,所以往往呈现的视图内容之间,可以是毫不相关的功能。UITabbarViewController仍然继承自UIViewController,但标签栏和导航栏都有着始终处于所有视图最前端的特性。对于标签页栏,他是一个UITabbar类的对象,无论横竖屏,在其之上可以放置最少1个,最多5个的标签页。当然如果有更多的标签页的话,页栏会将最后的标签页改变成一个默认的"More"标题带有默认的“...”图片的标签项目。并且,UITabbarController还支持排序的编辑功能,只要开发者为 阅读全文
posted @ 2014-04-12 16:51 haibo wang 阅读(303) 评论(0) 推荐(0)
摘要:1.栈 导航控制器自身有一个针对显示内容的栈,也有一个对于导航栏的栈,当有新的内容欲显示时,进的导航栏和显示内容会被压入此栈,这样原本显示中的导航栏和显示内容则会进入到栈的更深一层中,根据栈的先进后出功能,最后被压入栈的界面先出栈。不过导航视图控制器始终有两个栈,一个栈控制导航栏内容,一个栈控制显示内容,并且开发者有义务也必须保持这两个栈的深度一致,否则程序会将不同步异常抛出。 对于显示内容的压栈操作API如下:-(void)pushViewController:(UIViewController *)viewController animated:(BOOL )animated对于显示内容 阅读全文
posted @ 2014-04-12 12:39 haibo wang 阅读(357) 评论(0) 推荐(0)
摘要:IOS中AppDelegate中的生命周期事件的调用条件 1 //当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电 2 - (void)applicationWillResignActive:(UIApplication *)application 3 { 4 NSLog(@"应用程序将要进入非活动状态,即将进入后台"); 5 } 6 7 //应用程序已经进入后台运行 8 - (void)applicationDidEnterBackground:(UIApplication *)application 9 {10 NSLog(@"如 阅读全文
posted @ 2014-04-11 14:29 haibo wang 阅读(199) 评论(0) 推荐(0)
摘要:1.UIViewController *newController=[[UIViewController alloc] initWithNibName:@"XXX" bundle:nil];中XXX为名字xib的文件名,这个主要用在xib视图添加到其他视图中的时候用到,比如自定义UIView,当添加这个自定义View时,添加起xib文件名的要。2.UIViewController创建时,函数的调用顺序如下:[viewDidLoad][viewWillAppear:][viewWillLayoutSubviews] (iOS之后新API)[viewDidLayoutSubvi 阅读全文
posted @ 2014-04-10 17:05 haibo wang 阅读(548) 评论(0) 推荐(0)
摘要:单例模式只能修改无法释放,直到程序结束。我们下面一步一步来做一个单例模式程序(1)单例一旦创建,是永远存在于内存中的,所以需要创建一个全局量static MySingletonClass *sharedSingleTonObj=nil;(2)既然是单例,一定有一个构造方法直接忽略跳过实例对象的生成过程。据此看来“类方法”最合适不过了+(MySingletonClass *)sharedSingleton{ //多线程安全的关键字,相关概念可以参考多线程编程章节 @synchronized(self) { //创建 if(share... 阅读全文
posted @ 2014-04-10 15:04 haibo wang 阅读(335) 评论(0) 推荐(0)
摘要:代理是Object-C中的一个重要机制,他可以将面向对象编程的封装特性进一步加强,不是自己负责的事情坚决不做,而是转而让对应的事情负责人(代理)去做。相反如果是自己需要负责的事情(作为别人的代理),会抢着去做。代理的引入真正意义上完全实现MVC的程序结构框架。协议是对类的实现进行规约的一套标准,可以保证多个承诺实现协议的类的接口一致性。比如协议中定义了一个接口X,那承诺执行这个协议的类,就需要实现这个接口X.协议的关键性是让大家都有法可依有据可查。Object-C中很多时候,协议和代理是一起出现一起使用的,我们可以通过协议和代理来进行类与类之间的通信和交流。抽象的描述,如果类A是类B的代理,那 阅读全文
posted @ 2014-04-10 14:12 haibo wang 阅读(1222) 评论(0) 推荐(0)
摘要:1.内存的创建和释放 让我们以Object-c世界中最最简单的申请内存方式展开,谈谈关于一个对象的生命周期。首先创建一个对象://“ClassName”是任何你想写的类名,比如NSString NSArray等一切随意id testObject = [[ClassName alloc] init];注: alloc 是object-c 中常用来申请内存块的方式此时,对于对象“testObject”来说,他的引用计数就是1了,原因就是他调用了alloc来创建了一块只属于他的内存,这样对象的引用计数就得+1. 另外,Object-c中的另两个关键字retain和copy也会将对象的引用计数+1.. 阅读全文
posted @ 2014-04-10 13:25 haibo wang 阅读(619) 评论(0) 推荐(0)
摘要:Object-c 中的block就好像一段C函数般,由函数名,有返回值,有参数,由函数体等1.简单的block1 ^(int A ,int B)2 {3 int C=A*B;4 return C;5 };上述代码表示block有两个整形参数A和B.在block体中进行A和B的相乘,将结果作为block的返回值返回出去。2.将block作为参数的API 在程序开发时,当需要一个NSArray对象的所有元素进行遍历时,除了for循环,开发者可以使用block进行遍历,代码如下:1 NSArray *arrChar=[@"A/B/C/D/E/F" c... 阅读全文
posted @ 2014-04-10 10:30 haibo wang 阅读(3321) 评论(0) 推荐(0)
摘要:KVO(key-value Observer),通过命名可以联想到,一个监视着监视着键值配对,让一个对象A来监视另一个对象B中的键值,一旦B中的受监视键所对应的值发生了变化,对象A会进入一个回调函数,有机会对于B中的受监视键值的改变立刻进行处理和应对。 注:虽然对象A中的回调函数有点像代理方法,但是回调函数的调用和键值发生变化处在同一个线程中,并非像某些代理方法会在另一个线程中进行回调。也就是说,如果对键key进行了监视,一旦键key对应的值发生了变化,就会去调用监视着的回调函数,直到回调函数跑完后键key对应值发生变化的流程才能继续。 好处就是减少胶水代码。 比如比赛比分发生了变化... 阅读全文
posted @ 2014-04-09 17:13 haibo wang 阅读(380) 评论(0) 推荐(0)
摘要:如果我们的对象需要使用KVC,必须符合object-c的非正式协议NSKeyValueCoding.我们可以简单的来理解KVC,即所有符合KVC机制的对象都看成一个字典(NSDictionary),对象里面的成员量都是以键值配对的形式存放的,当我们需要为对象存值时,使用“setValue: froKey:”的方法;而当取对象时,使用valueForKey:的方法。 对于对象中成员量的键值配对,所谓的“键”其实是NSString类型的字符串,他们所对应的值也都是一个id类型的对象。 定义一个足球运动员类@interface footballer : NSObject@property (... 阅读全文
posted @ 2014-04-09 13:38 haibo wang 阅读(180) 评论(0) 推荐(0)
摘要:1. interface 代表类声明,@implement 代表类实现,@encode 代表将object-c 中类型转换成指定字符串2 当前char * 类型转化为字符串需要转化为NSString,转化代码如下:1 char cTest[12]="hello World\0";2 NSString *eString=[[NSString alloc]initWithBytes:cTest length:12 encoding:NSUTF8StringEncoding];3.NSString 转化为 char *代码如下:1 NSString *eString=@" 阅读全文
posted @ 2014-04-09 11:57 haibo wang 阅读(207) 评论(0) 推荐(0)