BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

MonoTouch.Dialog让iPhone对话框的创建更加便捷

| 作者 Jonathan Allen 关注 594 他的粉丝 ,译者 朱永光 关注 0 他的粉丝 发布于 2010年2月26日. 估计阅读时间: 6 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

为了简化用MonoTouch来进行iPhone开发,Miguel de Icaza开发了2个基于UITableView的抽象层。这些抽象层让开发人员可选择是使用基于特性标记的声明语法,还是使用基于嵌套控件的命令模型来开发。

UITableView或“表视图”是iPhone开发的重要组成部分。虽然它很强大,用起来却也很枯燥。人们不能简单地添加新视图节(sections)和视图行(rows)。首先,开发人员不得不重写numberOfSections函数来返回正确的计数。接着numberOfRowsInSection函数也必须进行调整来为每个函数返回正确的值。最后,界面部件本身需要通过cellForRowAtIndexPath函数来加载。如果这3个函数没有保持一致,那么UI上的控件看起来就像随机摆放的。

Miguel开发的抽象层的核心就是使用一系列嵌套的“元素”。每个元素都表示一种类型的界面部件,其在运行时会被放置到一个单元格中。下面是Miguel博客上的一个例子。

  var root = new RootElement ("Settings") { 
          new Section (){ 
              new BooleanElement ("Airplane Mode", false), 
              new RootElement ("Notifications", 0, 0) { Notifications } 
          }, 
          new Section (){ 
              new RootElement ("Sound"), { Sound }, 
              new RootElement ("Brightness"){ Brightness }, 
              new RootElement ("Wallpaper"){ Wallpaper } 
          }, 
          new Section () { 
              new EntryElement ("Login", "Your login name", "miguel"), 
              new EntryElement ("Password", "Your password", "password", true), 
              new DateElement ("Select Date", DateTime.Now), 
              new TimeElement ("Select Time", DateTime.Now)
          } 
  } 

Miguel写到:

尽管UITableView是基于强大的模型/视图/控制器(MVC)来构建的,这种方式让大家可以有效地扩展到大数据集,然而大部分配置页面和数据录入页面却不需要这么复杂的方式。
另外一个特性是,它会处理好所有在进行文本录入的记录问题,而无需编程者插手这些工作:接受键盘输入,在回车的时候自动切换到下一个录入行,在视图节中排列所有录入行,在已经完成所有录入后隐藏键盘。

Miguel也为快速而简单的配置界面提供了基于反射的方式。这个技术依赖于编译器以代码中出现的先后顺序来编译成员变量的特点,所以要小心那些会自动排序代码的代码格式化工具。

  class AccountInfo { 

  [Section] 
  public bool AirplaneMode; 

  [Section ("Data Entry", "Your credentials")] 

  [Entry ("Enter your login name")] 
  public string Login; 

  [Caption ("Password"), Password ("Enter your password")] 
  public string passwd; 

  [Section ("Travel options")] 
  public SeatPreference preference; 
  }

MonoTouch.Dialog基于MIT X11许可协议发布。而MonoTouch本身是一个Novell出品的商业产品,让.NET的应用程序可以运行在Apple的iPhone和iPad设备上。

查看英文原文:MonoTouch.Dialog Makes Creating Simple iPhone Dialogs Easier and Faster

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT