【问题标题】:Remove Add Calendar button from Calendar Chooser从日历选择器中删除添加日历按钮
【发布时间】:2021-10-16 11:15:06
【问题描述】:

我如下所示展示我的日历选择器:

let calendarChooser = EKCalendarChooser(selectionStyle: .single,
                                        displayStyle: .writableCalendarsOnly,
                                        entityType: .event,
                                        eventStore: eventStore)
calendarChooser.showsDoneButton = true
calendarChooser.showsCancelButton = true
let navigationController = UINavigationController(rootViewController: calendarChooser)
navigationController.view.tintColor = .orange // change color of navigation controller buttons
self.present(navigationController, animated: true, completion: nil)

我更改了导航控制器按钮Cancel(左上)、Done(右上)和Add Calendar(左下)的颜色。事实上,我不需要Add calendar 功能。我在导航控制器和日历选择器上尝试了hidesBottomBarWhenPushed = falsetabBarItem = nil。不开心。

问题一:Add calendar按钮可以去掉吗?

如果我无法删除Add Calendar 按钮,我至少希望将其Cancel 按钮(左上角)的颜色也更改为橙色(它显示默认蓝色)。

问题 2:如何更改 Add calendar 控制器上显示的 Cancel 按钮的颜色?

【问题讨论】:

  • 我认为没有任何公共 API 可以删除“添加日历”。取消按钮的颜色设置为您应用的全局色调。您似乎还没有真正设置应用程序的全局色调,这就是为什么它是蓝色的。您的应用程序的全局色调也是橙色吗?如果是这样,我可以告诉你如何设置全局色调。
  • 此外,删除“添加日历”有什么意义?用户总是可以在日历应用程序中添加另一个日历,因此删除它实际上不会阻止任何事情,只会给用户带来不便。对吗?
  • 删除Add calendar 更像是一个装饰性的愿望。我知道它总是可以添加到其他地方,但由于我没有设法改变其中Cancel按钮的颜色,我试图将它完全删除。 - 我确实在情节提要中将全局色调颜色设置为橙色。不过Add Calendar 控制器显示默认蓝色。

标签: swift eventkit ekcalendar


【解决方案1】:

我认为没有任何公共 API 可以删除“添加日历”按钮。

按钮的色调由应用的全局色调控制。但是,在情节提要中设置全局色调只会影响情节提要上的视图。故事板所说的“全局”色调实际上并不是 全局 色调。

从 iOS 14 开始,您可以在目标的构建设置中搜索“全局强调色”,将其设置为一个名称,然后在 Asset Catalog 中使用该名称创建一个颜色集。然后该颜色将成为您应用的全局色调颜色。示例:

如果您的项目是使用相当新版本的 Xcode 创建的,则应该已经为您设置了此设置,并且资产目录中应该已经设置了一个名为“AccentColor”的颜色。

在 iOS 14 之前,您可以设置 window.tintColor。查看this的答案。

之后,你甚至不需要这一行:

navigationController.view.tintColor = .orange

【讨论】:

  • 非常感谢。很好的解释。回答接受。我不知道 AccentColor(我的应用是 2019 年生成的)。 AccentColor 更改日历选择器和添加日历按钮颜色,但不更改 UIAlertController。因此我仍然需要 AppDelegate 中的window?.tintColor,但这似乎是一个错误,因为按住操作按钮会显示设置的 AccentColor。还要感谢故事板中的 Global Tint 解释——我期待这样的事情。所以...同时使用 AccentColor 和 window?.tintColor,我设法摆脱了几乎所有 .tintColor 代码行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-09
  • 1970-01-01
相关资源
最近更新 更多