摘要: 故事板实现标签导航用故事板技术实现标签导航模式。使用“Tabbed Application”模版,创建一个名为 “TabNavigationStoryborad”的工程。勾选“Use Storyborads”、“Use Automatic Reference Counting”。创建完成之后打开MainStoryboard.storyboard。三个Controller Scene 会有由一些线连接起来,这些线就是Segue,看到它是否想起了动画书中的“故事板”,事实上,iOS故事板起源于动画行业。故事板开始的一端是“Tab Bar Controller Scene”它是根视图控制器,图中有两 阅读全文
posted @ 2013-03-18 09:14 智捷iOS课堂 阅读(652) 评论(0) 推荐(0) 编辑
摘要: nib实现标签导航在目前的Xcode(4.5)版本创建标签导航的应用可以使用工程模板 Tabbed Application。我们可以选择故事板或nib技术实现。故事板创建固然简单,但这种实现方式屏蔽了标签导航很多技术细节,为了更有益于我们学习, 在实现环节我们分别采用了nib技术和storyboard技术。首先我们来看看用nib技术实现的过程。使用“Tabbed Application”模版创建一个名为 “TabNavigationNib”的工程。注意不要勾选“Use Storyborads”。工 程有两个画面,其中FirstViewController.h和FirstViewControll 阅读全文
posted @ 2013-03-13 10:50 智捷iOS课堂 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 基于分页导航实现在iOS 5之后,可以使用分页控制器(UIPageViewController)构建类似于电子书效果的应用,我们称为基于分页的应用。一个分页应用有很多相关的视图控制器分页控制器(PageViewController)需要放置在一个父视图控制器中,在分页控制器下面还要有子视图控制器,每个子视图控制器对应图中的一个页面。在基于分页导航实现的应用中需要的类和协议:UIPageViewControllerDataSource协议和 UIPageViewControllerDelegate协议和UIPageViewController 类,UIPageViewController没有对应 阅读全文
posted @ 2013-03-11 17:00 智捷iOS课堂 阅读(1729) 评论(1) 推荐(3) 编辑
摘要: 平铺导航模式是非常重要的导航模式。一般用于简单的扁平化信息浏览或任务。扁平化信息是指这些信息之间没有从属的层次关系,如中国的城市中北京、上 海和哈尔滨之间是扁平化信息,而哈尔滨市与黑龙江省之间的关系是从属的层次关系,层次关系信息可以采用标签导航和树形结构导航。从一个案例开始介绍平铺导航。如果我想为开发一个基于iPhone的“画廊”应用,目前只有3幅名画(左图是毕加索-哭泣、中图是达芬奇-蒙娜丽莎、右图是罗丹-思想者)收录到应用中。由于这3幅名画之间没有层次关系,他们之间是扁平的。基于分屏导航实现基于分屏导航是平铺导航模式的主要实现方式,主要涉及的控件有:分屏控件(UIPageControl)和 阅读全文
posted @ 2013-03-07 11:11 智捷iOS课堂 阅读(942) 评论(0) 推荐(0) 编辑
摘要: 软件设计中有设计模式,在UI设计方面也有设计模式。由于表视图的应用在iOS中极其广泛,本节向大家介绍表视图中两个UI设计模式:分页模式和下拉刷新(Pull-to-Refresh)模式。这两种模式已经成为移动平台开发的标准。分页模式分页模式规范了移动平台进行大量数据请求的处理方式 。下拉刷新模式下拉刷新(Pull-to-Refresh)是重新刷新表视图或列表,重新加载数据,这种模式广泛用于移动平台。下拉刷新与分页相反,当翻动屏幕到 顶部时候,再往下拉屏幕程序就开始重新请求数据,表视图表头部分会出现等待指示器,请求结束表视图表头消失。下拉刷新模式带有箭头动画效果。在很多开源社区中都有下拉刷新的实现 阅读全文
posted @ 2013-03-05 13:27 智捷iOS课堂 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 自定义单元格当苹果公司提供给的单元格样式不能我们的业务需求的时候,我们需要自定义单元格。在iOS 5之前,自定义单元格可以有两种实现方式:代码实现和用xib技术实现。用xib技术实现相对比较简单,创建一个xib文件,然后定义一个继承 UITableViewCell类单元格类即可。在iOS 5之后我们又有了新的选择,故事板实现方式,这种方式比xib方式更简单一些。我们把简单表视图案例的原型图修改一下,这种情况下四种内置的单元格样式就不合适了。 采用“Single View Application”工程模版创建一个名为“CustomCell”的工程,Table View属性的“Prototype. 阅读全文
posted @ 2013-03-01 14:22 智捷iOS课堂 阅读(952) 评论(0) 推荐(1) 编辑
摘要: 表视图是iOS开发中使用最频繁的视图,我们一般都会选择以表的形式来展现数据,比如通讯录、频道列表等。表视图分段、分组、索引等功能使我们所展 示的数据看起来更规整更有调理,更令人兴奋的是表视图还可以利用细节展示等功能多层次的展示数据,正所谓一表胜千言。 不过,相较于其它控件表视图的使用比较复杂,但是对比于表视图各种灵活多变的功能,我们在使用上花费的努力还是相当值得的。简单表视图表视图的形式灵活多变,本着由浅入深的原则,我们先从简单表视图开始学习。本节讲的简单表视图是动态表,(iOS 5之前全部是动态表没有动态表和静态表区别)。创建简单表视图在iOS 5之后我们可以使用xib或者故事板技术创建表视 阅读全文
posted @ 2013-02-27 16:27 智捷iOS课堂 阅读(776) 评论(0) 推荐(0) 编辑
摘要: 书接上回,应用案例我们以UITextFieldDelegate为例来说明一下委托的使用。 UITextFieldDelegate是控件UITextField的 委托,控件的委托主要负责响应控件事件或控制其他对象。除了UITextField,WebView、UITableView等控件也有相应的委托对象。打开UITextFieldDelegate的API文档,其中有4个有关编辑的方法,还要3个其它方法。这里我们在编辑过程中消息的发送,UITextField编辑过程中与UITextFieldDelegate委托对象之间交互过程。在 文本框编辑开始前后会发出消息textFieldShouldBegi 阅读全文
posted @ 2013-02-25 10:01 智捷iOS课堂 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 对于iOS开发,举例Cocoa框架下的几个设计模式为大家分析。当然,Cocoa框架下关于设计模式的内容远远不止这些,我们选择了常用的几种:单例模式、委托模式、观察者模式、MVC模式。委托模式委托模式从GoF 设计装饰(Decorator)、适配器(Adapter)和模板方法(Template Method)等模式演变而来。几乎每一个应用都会或多或少地使用到委托模式。不只是CocoaTouch框架,在Cocoa框架中委托模式也得到了广泛的应用。问题提出对于应用生命周期的非运行状态——应用启动场景,我们把从点击图标到第一个画面启动的过程细化了一下假设上图这一系列的处理,都是在一个上帝类UIAppl 阅读全文
posted @ 2013-02-21 17:00 智捷iOS课堂 阅读(867) 评论(2) 推荐(1) 编辑
摘要: 故事板是苹果在iOS5之后推出的技术,本意是集成多个nib文件于一个故事板文件,管理起来方便,故事板还能反应控制器之间的导航关系,很多导航是需要连连线就可以了,不需写代码,使用起来很方便。但是我告诫读者,从内存占用角度看故事板不是一个好的技术。为了比较我们使用Xcode中的Master-Detail模板分别创建,基于故事板的应用StoryboardDemo和基于nib的应用 NibDemo。然后通过Instruments工具的Allocations模板分析ViewController视图控制器加载的时候,内存占用方面 有多少差别。NibDemo工程的Allocations模板跟踪,Storyb 阅读全文
posted @ 2013-02-15 10:32 智捷iOS课堂 阅读(641) 评论(4) 推荐(0) 编辑