快速业务通道

使用Ruby on Rails和Eclipse开发iPhone应用程序,第2部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
content_tag(:ul, list_content, :selected => "true") end end

使用Ruby on Rails和Eclipse开发iPhone应用程序,第2部分(10)

时间:2011-11-29 ibm developerWorks Noel Rappin

额外的 list 元素实际上添加到 append_options 方法的第二行。应该在 :more 选项中传递这个元素,就像 items 列表元素应该有一个标题和一个 URL 一样。如果传递 :as_replace => true 的话,iui_list 中的最后一个 if 语句会造成 ul 列表标记被省略。

调用具有最后链接的 iui_list 方法类似于下面的清单,:more 选项在列表的底部提供了列表元素:

<%= iui_list @recipes, :more => ListModel.new(nil, "Next 25 items", more_recipes_url) %>

响应 more_recipes_url 的控制器操作 —— 不管结果是什么 —— 应该使用 :as_replace => true 调用 iui_list。

iUI 还有一个处理列表的技巧。使用 CSS group 类将在列表内部生成一个标题,类似于本机 iPod 歌曲应用程序的清单。

图 4. 具有组标题的列表

使用Ruby on Rails和Eclipse开发iPhone应用程序,第2部分 - 编程入门网

构建组列表的 rails_iui helper 函数重用构建普通列表的大部分代码。这个方法使用一个块动态地决定标题。

清单 11. 构建具有组的列表的 rails_iui helper 函数

def iui_grouped_list(items, options = {}, &group_by_block)      groups = items.group_by(&group_by_block).sort      group_elements = groups.map do |group, members|        group = content_tag(:li, group, :class => "group")        member_elements = [group] + members.map { |m| list_element(m) }      end      content_tag(:ul, group_elements.flatten.join("\n"),           :selected => "true")    end

iui_grouped_list 方法使用 Rails ActiveSupport group_by 方法,将列表转换成 [group, [members]] 的 2-D 列表。分类可以保证组以字母顺序排列(在应用这个方法之前,您肯定希望将每个条目按顺序排列)。

这个方法的视图代码类似于(块返回食谱标题的首字母):

<%= iui_grouped_list(@recipes) {|r| r.title[0, 1]} %>

结束语

到目前为止,已经学习了如何向 Mobile Safari 用户提供定制内容。也懂得了如何使用列表外观显示站点导航,这种方式不仅符合 iPhone 用户的期望,也加快了加载速度(在网速比较慢的情况下也不例外)。

本系列的第 3 部分将讨论用户下钻并获取了一些内容之后要显示的内容。这包括显示面板和对话框,以及使用普通的 iPhone 圆角矩形样式。您将明白如何对旋转 iPhone 设备以及翻转 Mobile Safari 侧边作出响应。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号