iOS: всегда делайте размер тайлов библиотеки календарей Tapku размером 6x6 - PullRequest
0 голосов
/ 15 марта 2012

Я заметил, что сетка календаря Тапку изменялась между 5x5 и 6x6 в зависимости от распределения дат месяца.Например, он отображает сетку 5x5 за март 2012 года и отображает сетку 6x6 за сентябрь 2012 года!Для меня это приводит к неправильному выравниванию GUI, поэтому я хочу, чтобы сетка всегда была 6x6.Я изучал метод rangeOfDatesInMonthGrid в TKCalenderMonthView, но не понял, как он создает сетку!Может ли кто-нибудь, пожалуйста, скажите мне, как исправить сетку 6x6 всегда.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Решение для 2-й точки. Если вы хотите отобразить отметку на выбранной и удалить отметку из невыбранных дат, а затем используйте следующий код.

- (void)calendarMonthView:(TKCalendarMonthView *)monthView didSelectDate:(NSDate *)d {
NSLog(@"calendarMonthView didSelectDate");

NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
[df setTimeZone:[NSTimeZone systemTimeZone]];

NSString *strqw=[df stringFromDate:d];
NSLog(@"%@",strqw);
NSString *stss=[strqw stringByAppendingString:@" 00:00:00 +0000"];
NSLog(@"%@",stss);
int k=0;
for (int i=0; i<[array1 count]; i++) {
    if([[array1 objectAtIndex:i]isEqualToString:stss]){
         [array1 removeObjectAtIndex:i];
        k=1;
    }
}
if(k==0)
[array1 addObject:stss];

[calendar reload];
}

И добавьте эту строку
NSArray *data=[[NSArray alloc] initWithArray:array1]; по приведенной ниже методике

 - (NSArray*)calendarMonthView:(TKCalendarMonthView *)monthView marksFromDate:(NSDate *)startDate toDate:(NSDate *)lastDate
0 голосов
/ 16 июня 2013

Вот небольшой хак, который я использую:

В представлении DidAppear у меня

[calendar selectDate:[NSDate dateWithTimeIntervalSinceNow:-31*24*60*60]];
[calendar selectDate:[NSDate dateWithTimeIntervalSinceNow:0]];

А в

- (void) calendarMonthView:(TKCalendarMonthView*)monthView monthDidChange:(NSDate*)month animated:(BOOL)animated{

Я просто проверяю высоту своего календаря и делаю все, что мне нужно. Это сделано потому, что если вы проверите высоту кадра сразу после создания календаря, он вернет нормальную высоту 5 * 7 вместо 6 * 7.

Надеюсь, это поможет!

...