如何配置FSCalendar以支持RTL语言数字?
这是我使用
的代码FSCalendar *calendar = [[FSCalendar alloc] initWithFrame:CGRectMake(0, 0, 300, 320)];
calendar.dataSource = self;
calendar.delegate = self;
calendar.backgroundColor = [UIColor whiteColor];
calendar.appearance.headerMinimumDissolvedAlpha = 0;
calendar.appearance.caseOptions = FSCalendarCaseOptionsHeaderUsesUpperCase;
calendar.scrollDirection = FSCalendarScrollDirectionHorizontal;
calendar.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"ar_AE"];
当我启动日历视图时,我无法使用正确的语言数字显示日期
@WenchaoD有关如何使其发挥作用的任何想法?
答案 0 :(得分:0)
在FSCalendar中无法完成RTL,我们可以在日历中添加阿拉伯数字。
这是我的解决方案,它解决了我的问题,希望它能满足您的要求。
在这个解决方案中,我使用了FSCAlendar中标题选项的可能性。用这个阿拉伯语用户可以轻松使用日历。
func showArabicSubTitle(date: Date!) -> String!
{
let dateFormater = DateFormatter()
dateFormater.dateFormat = "dd"
var calendarDate = dateFormater.string(from: date as Date)
let characters = Array(calendarDate.characters)
let substituteArabic = ["0":"٠", "1":"١", "2":"٢", "3":"٣", "4":"٤", "5":"٥", "6":"٦", "7":"٧", "8":"٨", "9":"٩"]
var arabicDate = ""
for i in characters {
if let subs = substituteArabic[String(i)] {
arabicDate += subs
} else {
arabicDate += String(i)
}
}
return arabicDate
}
//MARK: - FSCalendarDelegate
func calendar(_ calendar: FSCalendar, titleFor date: Date) -> String? {
return (L102Language.currentAppleLanguage() == "ar") ? self.showArabicSubTitle(date: date) : ""
}