在单一背景颜色的tapku库中完成标记日期需要三种颜色Objective C

时间:2011-09-06 07:22:32

标签: objective-c ios tapku

我正在使用tapku库在我的应用程序中显示日历。我已经完成了所有日期计算,并根据我的需要正确标记了细胞,但我想根据我的选择为细胞提供不同的颜色。我用单一背景颜色做了标记,但我想用三种颜色显示。我怎么能?

1 个答案:

答案 0 :(得分:1)

看看方法:

drawRect:方法中的颜色设置为[UIColor grayColor](代码中的下面一个)。您可以做的是检查日期是否是您感兴趣的日期,然后适当地更改颜色。我不确定你想如何区分你的日期 - 这是你的电话;在过去,我已经将mark参数的参数更改为类似int的内容,然后将颜色基于int的值。 mark参数来自marks数组,所以如果传入一个具有不同值的数组,然后在整个TKCalendarMonthView中更改方法参数,那就应该没问题。

例如,假设你想要:mark = 1 - >画红色; mark = 2 - >画绿色;标记> 2 - >画蓝色。

- (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];

}

希望这能回答你的问题。