读书频道 > 网站 > 网页设计 > iPhone开发基础教程
8.2.2 编写控制器(2)
12-07-11    叶孤城
收藏    我要投稿   

本文所属图书 > iPhone开发基础教程

本书由业界名家撰写,英文原版问世以后迅速登上Amazon计算机图书排行榜榜首并持续至今,总排名一度达到20名左右,创造了销售奇迹。而且,本书获得了读者的一致好评,已经被奉为经典。书中从到Apple网站注册账号,...立即去当当网订购

此字符串充当表示某种表单元的键。在此表中,我们将只使用一种单元,因此定义一种标识符就可以了。表视图在iPhone的小屏幕上一次只能显示几行,但是表自身能够保存相当多的数据。记住,表中的每一行都由一个UITableViewCell实例表示,该实例是UIView的一个子类,这就意味着每一行都能拥有子视图。对于大型表来说,如果视图为表中的每一行都分配一个表视图单元,不管该行当前是否正被显示,这都将带来大量开销。幸好表并不是这样工作的。

相反,因滚动操作离开屏幕的一些表视图单元,将被放置在一个可以被重用的单元序列中。如果系统运行比较慢,表视图就从序列中删除这些单元,以释放存储空间,不过,只要有可用的存储空间,表视图就会重新获取这些单元,以便以后再次使用它们。

当一个表视图单元滚出屏幕时,另一个表视图单元就会从另一边滚动到屏幕上。如果滚动到屏幕上的新行重新使用从屏幕上滚动下来的其中一个单元,系统就会避免与不断创建和释放那些视图相关的开销。要充分利用此机制,我们需要让表视图给定一个出列单元,该出列单元正是我们需要的类型。注意,我们现在正在使用前面声明的NSString标识符。实际上,我们需要一个SimpleTableIdentifier类型的可重用单元:


现在,表视图中可能没有任何多余的单元了,我们来检查这些cell,看一下它是否为零(nil)。如果是,则使用上面提到的标识符字符串手动创建一个新的表视图单元。从某种程度上来说,我们将不可避免地重复使用此处创建的单元,因此需要确保它具有相同的类型。

现在,我们拥有了一个可以返回到表视图的表视图单元。下面所有要做的就是把需要显示的信息放在该表视图单元中。在表的一行内显示文本是很常见的任务,因此表视图单元提供了一个名称为text的属性,我们可以设置此属性以显示字符串。对于这种情况,我们需要从listData数组中获取正确的字符串,然后使用它设置表视图单元的text属性。

要完成上述操作,需要知道表视图需要显示哪些行。可以从indexPath变量获取该信息,如下所示:

我们使用这个值从数组获取正确的字符串,将它分配给单元的text属性,然后返回该单元。

情况并不那么糟糕,对吗?下面编译并运行应用程序。等一下,是不是有地方弄错了?出现了一个链接错误?你认为我们应该怎么做呢?

 

如果你被难住了,那么给你一个提示:我们使用了一个名为CGRectZero的常量,它是Core Graphics框架的一部分。默认情况下,Core Graphics框架没有连接到项目。如果你忘记如何将它连接进来的话,可以参见第5章,其中逐步地介绍了此过程。解决这个问题后,就可以成功完成编译了。运行应用程序,你将看到显示在表视图中的数组值(参见图8-7)。




图8-7  简单的表应用程序
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站