3

我在我的 iOS 应用程序中使用 JTAppleCalendar,但我发现很难像传统日历那样实现在日历顶部显示月份和年份的标题。我已按照文档中的说明进行操作,但尽管我设法添加了“标题”以显示一周中的日期,但我仍然觉得很困难,尽管我觉得可能不正确。对于以前实现过这个库的任何人,我可以获得一些帮助如何做到这一点吗?或者也许您使用的另一个日历有更简单的方法来完成这个?

我希望屏幕看起来像这样: 在此处输入图像描述

虽然我目前看起来像这样: 在此处输入图像描述

文档: https ://patchthecode.github.io/Headers/

我这样实现星期几:

    // This sets the height of your header
func calendar(_ calendar: JTAppleCalendarView, sectionHeaderSizeFor range: (start: Date, end: Date), belongingTo month: Int) -> CGSize {
    return CGSize(width: 200, height: 50)
}
// This setups the display of your header
func calendar(_ calendar: JTAppleCalendarView, willDisplaySectionHeader header: JTAppleHeaderView, range: (start: Date, end: Date), identifier: String) {
    let headerCell = (header as? PinkSectionHeaderView)
    headerCell?.title.text = "S           M           T           W           T           F           S"
}
4

1 回答 1

4

我认为你只是让这件事变得比应该做的要困难得多。

您在教程站点上看到的是一个示例,说明如何设置一个带有简单 UILabel 的标题,称为title. 如果您的日历设计不同,您不必完全遵循这一点。只需按照您的意愿进行设计。

看来你想要的不是 UILabel。你想要 7 个标签;每个代表一周中的一天。最简单的方法就是在 Horizo​​ntal Stackiew 中创建 7 个 UILabel。StackView 的间距应该设置为full并且应该设置为fill equally. 然后您所要做的就是单击各个标签并将其对齐设置为居中。

在此处输入图像描述

使 StackView 的约束延伸到 headerView 的末端。完毕。您的 S|M|T|W|T|F|S 视图是完整的,无需对空格进行硬编码;这是一件坏事。

接下来,您似乎还想要另外 2 个标签。一个用于Month,另一个用于Year。因此,在标题视图中创建这些标签,然后为它们创建 outletLets。然后您可以在以下函数中正确设置它们。

func calendar(_ calendar: JTAppleCalendarView, willDisplaySectionHeader header: JTAppleHeaderView, range: (start: Date, end: Date), identifier: String) {
}
于 2017-04-08T17:55:18.013 回答