【问题标题】:Update calendar 'start of week' from phones system calendar从手机系统日历更新日历“一周开始”
【发布时间】:2019-08-16 09:43:45
【问题描述】:

用户可以在他们的手机中设置他们每周的自定义开始日期,例如this。再加上这种不同的文化有不同的日子开始一周:

澳大利亚、英国:周日、周一、...、周六

中国:周一、周二、...、周日

这意味着在开发日历功能时,我们可能会在一周中的许多不同日子(从左到右)开始我们的日历,以优化用户体验。

我们可以自定义日历,使其具有一周中的特定开始日期:

var customCalendar = Calendar(identifier: .gregorian)
customCalendar.firstWeekday = 3

问题在于将我的自定义日历更新为用户的系统日历。

当我使用 Calender(从用户的手机中拉出)时,这会自动发生吗?还是我需要做一些自定义的事情?

目前很少有信息明确说明是否需要手动操作来解决此问题。感谢任何人都可以提供的任何帮助。

【问题讨论】:

    标签: ios swift calendar


    【解决方案1】:

    如果您使用Calendar.current 并且没有显式更改其语言环境或firstWeekday 属性,则日历的firstWeekday 属性将自动适合用户的设备设置。

    根据该属性值对您的逻辑进行编码,您将显示正确的结果(当然假设您的代码中没有错误)。

    【讨论】:

    • 非常感谢。我知道这应该很容易,但没有明确知道会是这样。
    • 如果您想向自己证明这一点,请在应用程序中添加一些代码,该应用程序每次进入前台时都会打印firstWeekday。现在运行应用程序并查看输出。然后转到设置并更改您的区域设置并进行其他日历更改。返回您的测试应用并查看更新后的输出。
    • @rmaddy 不确定这是否已经改变,但似乎Calendar.current 是区域设置的日历,而不是我设备中用户设置的默认日历。在我的语言环境中,工作日从星期日开始,在我的设置中我将其设置为星期一.. 但是当我在进入应用程序的前台时打印Calendar.current.firstWeekday 时,它显示1 这是星期日。
    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多