AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

Web3 游戏周报(6.30 - 7.06)

Footprint Analytics

链游

Redis 高阶应用

不在线第一只蜗牛

数据库 redis 缓存

性能测试:主流性能剖析工具介绍

霍格沃兹测试开发学社

OpenNJet 3.0 版本正式发布!

通明湖

DDoS 攻击再破记录,欧洲最大云服务商OVHcloud甩锅Mikrotik

网络安全服务

云服务 云安全 DDoS 黑客攻击 DDoS 攻击

低代码研发项目管理流程优化:提效与创新的双重驱动

不在线第一只蜗牛

低代码 项目开发

IoTDB 社区出品|CommunityOverCode Asia 2024 专题介绍之 IoT

Apache IoTDB

NFTScan | 07.01~07.07 NFT 市场热点汇总

NFT Research

NFT\ NFTScan

解锁京东 APP 商品详情的 API 接口获取方法

Noah

软件测试学习笔记丨Allure2报告中添加用例标题

测试人

软件测试

高效办公智能助手—办公小浣熊

小月亮

数据分析 智能办公 办公小浣熊 商汤科技 代码小浣熊

3s->30ms!MySQL 生产环境 GROUP BY 优化实践

爱可生开源社区

MySQL SQL优化

万字长文聊聊Web3的组成架构

Keegan小钢

区块链 去中心化 web3 Web3.0

云手机如何助力企业提升海外业务效率?

Ogcloud

云手机 海外云手机 云手机海外版 云手机群控

万字长文解析AI Agent技术原理和应用

华为云开发者联盟

人工智能 华为云 大模型 华为云开发者联盟 企业号2024年7月PK榜

业务系统核心模块资料访问性能优化实战

鲸品堂

查询 业务 企业号2024年7月PK榜

IoTDB 社区出品|CommunityOverCode Asia 2024 专题介绍之 IoT

Apache IoTDB

海外云手机的性价比怎么样?

Ogcloud

云手机 海外云手机 云手机海外版 云手机群控 海外社媒运营

Coze+免费API,快速打造你的定制化AI机器人

幂简集成

人工智能 开发 API

英伟达开源 RTX Remix 技术,用 AI 重制经典游戏;Luma 发布首尾帧功能可快速补全视频丨 RTE 开发者日报

声网

淘宝天猫商品评论API接口:用户反馈实时分析,驱动电商增长

技术冰糖葫芦

API Explorer API 调试 API 文档 API 协议

C#开发单实例应用程序并响应后续进程启动参数

不在线第一只蜗牛

C# html 开发语言

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