Закончил отмечать даты в библиотеке тапку одним цветом фона и хочу три цвета. - PullRequest
2 голосов
/ 06 сентября 2011

Я использую библиотеку tapku для отображения календаря в моем приложении. Я выполнил все вычисления даты и пометил ячейки в соответствии с моими потребностями, но я хочу придать ячейке другой цвет по своему выбору. Я сделал маркировку одним цветом фона, но хочу отобразить три цвета. Как я могу?

1 Ответ

1 голос
/ 23 июля 2012

Посмотрите на метод:

Для цвета задано значение [UIColor grayColor] в методе drawRect: (ниже в коде).Что вы можете сделать, это проверить, является ли дата интересующей вас датой, а затем соответствующим образом изменить цвет.Я не уверен, как вы хотите различать даты - это ваш звонок;В прошлом я изменял параметр аргумента mark на что-то вроде int, а затем основывал цвет на значении int.Аргумент mark происходит из массива marks, поэтому, если вы передадите массив с другими значениями, а затем измените аргументы метода в TKCalendarMonthView, все будет в порядке.

Например, допустим, вы хотите: mark =1 -> рисовать красным;mark = 2 -> нарисуйте зеленый;mark> 2 -> draw blue.

- (void) drawTileInRect:(CGRect)r day:(int)day mark:(**int**)mark font:(UIFont*)f1 font2:(UIFont*)f2
{

    NSString *str = [NSString stringWithFormat:@"%d",day];


    r.size.height -= 2;
    [str drawInRect: r
       withFont: f1
      lineBreakMode: UILineBreakModeWordWrap 
      alignment: UITextAlignmentCenter];

    if (mark) {
        if (mark == 1)
             [[UIColor redColor] set];
        else if (mark == 2)
             [[UIColor greenColor] set];
        else if (mark > 2)
             [[UIColor blueColor] set];
        r.size.height = 10;
        r.origin.y += 18;

        [@"•" drawInRect: r
                withFont: f2
           lineBreakMode: UILineBreakModeWordWrap 
           alignment: UITextAlignmentCenter];
     }
   [[UIColor grayColor] set];

}

Надеюсь, это ответит на ваш вопрос.

...