1

我正在使用 JTCalendar。我想获得显示日历的月份。截至目前,日历中没有显示月份名称。我使用下面的代码来显示日历。

  calendarManager = JTCalendarManager()
  calendarManager?.delegate = self
  var calender = calendarManager?.dateHelper.calendar()
  calender?.firstWeekday = 1
  calendarManager?.contentView = calendarContentView
  calendarManager?.setDate(todayDate)

请指导我如何用年份显示月份名称。

4

4 回答 4

2

只需将您月份的 UIView 类设置为“JTCalendarMenuView”,然后,您可以使用 JTCalendarDelegate 方法:

    - (UIView *)calendarBuildMenuItemView:(JTCalendarManager *)calendar
{
    UILabel *label = [UILabel new];

    label.textAlignment = NSTextAlignmentCenter;
    label.font = [UIFont systemFontOfSize:16];

    return label;
}

- (void)calendar:(JTCalendarManager *)calendar prepareMenuItemView:(UILabel *)menuItemView date:(NSDate *)date
{
    static NSDateFormatter *dateFormatter;
    if(!dateFormatter){
        dateFormatter = [NSDateFormatter new];
        dateFormatter.dateFormat = @"MMMM yyyy";
    }
    menuItemView.text = [dateFormatter stringFromDate:date];
}

这将为您提供“2016 年 12 月”的文本(例如)

于 2016-12-06T12:39:11.283 回答
1

斯威夫特 4+:

简单的解决方案

var getMonthYearFromDate: String? 
{
     let dateFormatter = DateFormatter()
     dateFormatter.dateFormat = "MMMM, yyyy"
     let strMonth = dateFormatter.string(from: self)
     return strMonth
}

func calendar(_ calendar: JTCalendarManager!, prepareMenuItemView menuItemView: UIView!, date: Date!) 
{
     print(date.getMonthYearFromDate)

     //Do your code modification here
}
于 2019-02-13T08:44:02.293 回答
1

除了@Aakash 的回答,menuItemView 实际上是一个 UIView。所以它没有 .text 属性。而是使用这一行, [(UILabel*) menuItemView setText:[dateFormatter stringFromDate:date]];

于 2017-03-24T05:26:55.760 回答
0

迅速

只需添加此功能。

   func calendar(_ calendar: JTCalendarManager!, prepareMenuItemView menuItemView: UIView!, date: Date!) {
    for view in menuItemView.subviews {
        view.removeFromSuperview()
    }
    let label1 = UILabel(frame: CGRect(x: 80, y: 60, width:400, height: 21))
    label1.center = CGPoint(x: 130, y: 20)
    label1.textColor = UIColor.red
    label1.textAlignment = NSTextAlignment.center
    let dateFormatter1 = DateFormatter()
    dateFormatter1.dateFormat = "MMMM, yyyy";
    let mydt = dateFormatter1.string(from: date)
    label1.text = mydt
    menuItemView.addSubview(label1)
}
于 2018-11-25T18:17:09.567 回答