Как получить название месяца с годом в JTCalendar?
Я использую JTCalendar. Я хочу получить месяц, для которого отображается календарь. На данный момент название месяца не отображается в календаре. Я использовал код ниже, чтобы показать календарь.
calendarManager = JTCalendarManager()
calendarManager?.delegate = self
var calender = calendarManager?.dateHelper.calendar()
calender?.firstWeekday = 1
calendarManager?.contentView = calendarContentView
calendarManager?.setDate(todayDate)
Пожалуйста, руководство, как я могу показать название месяца с годом.
3 ответа
Свифт 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
}
Просто установите класс 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" (например,)
В дополнение к ответу @Aakash menuItemView на самом деле является UIView. Так что у него нет свойства.text. Вместо этого используйте эту строку, [(UILabel*) menuItemView setText:[dateFormatter stringFromDate:date]];
стриж
просто добавьте эту функцию.
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)
}