首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为RTL自定义FSCalendar

为RTL自定义FSCalendar
EN

Stack Overflow用户
提问于 2017-06-19 04:07:18
回答 1查看 2.2K关注 0票数 1

如何配置FSCalendar以支持RTL语言数字?

下面是我使用的代码

代码语言:javascript
复制
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"];

启动日历视图时,无法使用正确的语言数字获取要显示的日期

正如您所看到的,只有部分内容才能正确显示。我在iOS 10上。

@WenchaoD对如何让它工作有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-09-14 18:08:20

完整的RTL在FSCalendar中是不可能的,我们可以在日历中添加阿拉伯数字。

这是我的解决方案,它解决了我的问题,希望它能满足你的要求。

在这个解决方案中,我在FSCAlendar.By中使用了标题选项的可能性,使用阿拉伯语的用户可以很容易地使用日历。

代码语言:javascript
复制
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) : ""
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44619078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档