В своем проекте я, для реализации календаря, использовать готовый модуль FSCalendar. В нем есть готовая функция, которая к каждой дате в календаре добавляет подпись типа String. Задача такова, что в приложении пользователь задает кол-во дней, и нужно чтобы с определенной даты это кол-во в виде перечисления(1,2,3,4 и тд) подставлялось как подпись к датам. А когда один цикл закончился за ним следовал новый точно такой-же и так до бесконечности. В имеющимся коде я реализовал только использование 1 цикла. Код и UI ниже:
func calendar(_ calendar: FSCalendar, subtitleFor date: Date) -> String? {
let cycleIsOrdered = Int(self.cyclePeriod.text!)
if daysRange.count > 1{
let today = daysRange[0] //First element in another dates array
var stringDate = ""
var countForArray = 1
var countForSubtitle = 0
var countArray = [String]()
let nextDays = Calendar.current.date(byAdding: .day, value: cycleIsOrdered!-1, to: today)!
cycleRange = datesRange(from: today, to: nextDays)
for cycleRange in cycleRange{
countArray.append(String(countForArray))
countForArray += 1
stringDate = countArray[countForSubtitle]
if date == cycleRange{
return stringDate
}
countForSubtitle += 1
}
}else{
return ""
}
return ""
}