使用Ruby on Rails和Eclipse开发iPhone应用程序,第2部分 - 编程入门网
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 选项在列表的底部提供了列表元素:
响应 more_recipes_url 的控制器操作 —— 不管结果是什么 —— 应该使用 :as_replace => true 调用 iui_list。 iUI 还有一个处理列表的技巧。使用 CSS group 类将在列表内部生成一个标题,类似于本机 iPod 歌曲应用程序的清单。 图 4. 具有组标题的列表 构建组列表的 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |