加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 如何创建iOS时区选择器?

发布时间:2020-12-14 17:49:27 所属栏目:百科 来源:网络整理
导读:我的应用程序是飞行员的日志,我想让用户选择将应用程序放在他们选择的时区.航空公司的飞行员可能会飞越世界各地,但在输入航班信息时必须参考他们的基地时区.我想提供一个UI,允许他们选择一个时区选项,如“本地”(设备本地,取决于他们的位置),“UTC”,然后硬
我的应用程序是飞行员的日志,我想让用户选择将应用程序放在他们选择的时区.航空公司的飞行员可能会飞越世界各地,但在输入航班信息时必须参考他们的基地时区.我想提供一个UI,允许他们选择一个时区选项,如“本地”(设备本地,取决于他们的位置),“UTC”,然后硬“自定义”.

我正在使用MonoTouch.Dialog,它允许你连接一个集合,但问题是在iOS中,时区列表相当长.我使用System.TimeZoneInfo命名空间来检索时区列表,就像在Windows中一样.但是,iOS使用诸如“美国/纽约,美国/ XYZ等”的演示.因此,为了保持这个列表的可管理性,我需要通过拆分来解决这个问题.我可以首先提供一个国家列表,用户将点击它,然后一个辅助列表将出现在UITableView中,这是区域比如“纽约”.然后,我将捕获时区并使用System.TimeZoneInfo方法将UTC转换为自定义时区.

我的问题是,特别是在MonoTouch.Dialog中,我可以拥有一个集合,然后是一个子集合.即具有披露指标的国家的UITableView,将您带到该国的地区?

在同样的说明中,还有其他人在iOS(Xcode或MonoTouch)中实现了“时区”选择器/选择器吗?

感谢您的想法并帮助解决此问题.

解决方法

以下内容将为您提供您正在寻找的UI:

var groups = from tz in TimeZoneInfo.GetSystemTimeZones ()
    let name = tz.ToString ()
    let idx = name.IndexOf ('/')
    where idx != -1
    let first = name.Substring (0,idx)
    group tz by first into g
    select new { Region = g.Key,Zones=g };

var root = new RootElement ("TimeZones"){
    new Section ("Regions"){
        from r in groups 
            select (Element) new RootElement (r.Region.ToString ()){
                new Section () {
                    from z in r.Zones 
                        select (Element) new StringElement (z.ToString ())
                }
            }
    }
};
dvc = new DialogViewController (root);

它产生这个UI:

Main UI http://tirania.org/s/c2219510.png

嵌套元素看起来像这样:

Nested http://tirania.org/s/bb0d68da.png

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读