写点什么

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

  • 2010-02-25
  • 本文字数:1268 字

    阅读完需:约 4 分钟

为了简化用 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

2010-02-25 04:322126
用户头像

发布了 254 篇内容, 共 71.3 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

观测云产品更新 | 可用性监测、场景图表、指标管理等优化

观测云

产品迭代

绕过 RAG 实时检索瓶颈,缓存增强生成(CAG)如何助力性能突破?

Baihai IDP

程序员 AI LLMs GenAI CAG

哈尔滨等保2.0丨5分钟速览:小白也能看懂的等保2.0介绍

黑龙江陆陆信息测评部

浅谈Tox之二

天翼云开发者社区

Python 测试 Tox

存储降本,查询提速!时序数据库 TDengine 助力靖江特钢释放数据价值!

TDengine

数据库 tdengine 时序数据库

TechSmith Snagit for Mac:屏幕捕捉与编辑的全能工具

小玖_苹果Mac软件

浅谈Tox之一

天翼云开发者社区

Python 自动化测试 Tox

百度百舸 DeepSeek 企业套件上线,加速 DeepSeek 融入企业生产业务

Baidu AICLOUD

百度百舸

taosd 写入与查询场景下压缩解压及加密解密的 CPU 占用分析

TDengine

数据库 tdengine 时序数据库

Color Wheel for Mac:设计师的色彩搭配助手

小玖_苹果Mac软件

课程质量评估系统(源码+文档+讲解+演示)

深圳亥时科技

国际专线宽带是什么?有什么优势?

Ogcloud

国际专线 国际网络专线 网络专线 国际专线宽带

StarRocks 在爱奇艺大数据场景的实践

StarRocks

大数据 spark OLAP 爱奇艺

TikTok网络搭建方法:稳定的短视频运营与直播

Ogcloud

TikTok tiktok直播网络 tiktok网络 tiktok网络搭建

AI口语练习APP的模拟考试

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI口语学习

出海企业必看!国际网络开通全攻略

Ogcloud

国际专线 国际网络专线 海外网络访问 海外网络连接

「工业4.0」智慧化工厂解决方案,智慧化工园区总体规划设计方案

金陵老街

智慧园区 智慧化工园区

服装智能制造软件平台(源码+文档+讲解+演示)

深圳亥时科技

AI口语练习APP的发音评测

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语口语

秒验:重构APP用户体验与运营效率

MobTech袤博科技

秒验三网合一,打破运营商壁垒的用户增长加速器

MobTech袤博科技

消防行业如何借助时序数据库 TDengine 打造高效的数据监控与分析系统

TDengine

tdengine 时序数据库 数据库‘’

智能制造:汽车从订单到交付全流程

积木链小链

数字化转型 制造业 智能制造

国家级播音老师30年专业功力加持,为华为阅读带来听书精品音色3.0

最新动态

MonoTouch.Dialog让iPhone对话框的创建更加便捷_.NET_Jonathan Allen_InfoQ精选文章