写点什么

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:322062
用户头像

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

关注

评论

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

阿里科学家凭集成学习技术获CIKM Cup竞赛冠军

阿里技术

Rust 元宇宙 2 — 邻居

Miracle

rust 元宇宙

最前沿人工智能,助力双11搜索推荐技术再升级——深度增强学习大规模在线应用

阿里技术

当学霸们跑步的时候他们在跑什么

阿里技术

[干货] Weex在双11会场的大规模应用:业务支撑、稳定性保障和秒开实战

阿里技术

阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践

阿里技术

使用redis生成唯一编号

喵叔

11月日更

阿里巴巴服务网格技术三位一体战略背后的思考与实践

阿里巴巴云原生

阿里云 云原生 服务网格 三位一体

普华永道:阿里巴巴研发投入领跑中国上市公司

阿里技术

Rust 元宇宙 1 —— 创世纪

Miracle

rust 元宇宙

不会用Camtasia的“库”,你可能错过了一个亿

淋雨

Camtasia

Rust 元宇宙 6 —— 显示世界

Miracle

rust SDL 元宇宙

微博系统中”微博评论“的高性能高可用计算架构设计

Beyond Ryan

阿里CTO张建锋:一根高尔夫球杆背后的数据智能[演讲全文]

阿里技术

应运而生! 双11当天处理数据5PB—HiStore助力打造全球最大列存储数据库

阿里技术

Rust 元宇宙 4 —— 让世界动起来

Miracle

rust 元宇宙

花了2个钟才搞懂这AOP为啥没生效,水友却睡着了……

4ye

Java spring 程序员 后端 签约计划第二季

2016年双11:新技术、新能源的第一战场

阿里技术

阿里巴巴数据中心获两项DCD大奖

阿里技术

Rust 元宇宙 5 —— SDL2.0

Miracle

rust SDL 元宇宙

Apache再次接受阿里开源产品捐赠 移动开发框架Weex进入孵化

阿里技术

网络监控原理

喀拉峻

网络安全 安全 网络

王坚:世界上最遥远的距离是红绿灯与交通监控摄像头的距离

阿里技术

新零售时代的双11移动技术亮剑 ——2016年阿里移动平台新技术解读

阿里技术

百度ERNIE新突破!登顶中文医疗信息处理权威榜单CBLUE冠军

百度大脑

人工智能

直播预告丨“Hello ArkUI:初识Slider组件(JS)”周三约起

HarmonyOS开发者

HarmonyOS

阿里研究员毕玄谈应用运维体系的变迁,DevOPS是大势所趋

阿里技术

超强实时跟踪系统首次开源!支持跨镜头、多类别、小目标跟踪!

百度大脑

人工智能 人工智能摄像头

你需要用战略耐心实现职业目标

石云升

读书笔记 11月日更

Rust 元宇宙 3 —— 进入和离开

Miracle

rust 元宇宙

天猫技术全面打造『身临其境』的消费者交互体验

阿里技术

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