根据日期更改标签栏图标

时间:2012-08-22 04:04:45

标签: iphone ios uitabbarcontroller uitabbar tabbar

以下是应用程序运行时标签栏图标的屏幕截图。 tabbar barbutton image

图标显示27表示当天,并且是图像。

有没有办法可以根据当天动态更改日期?

iPhone SDK是否可以根据当前日期动态更改标签栏按钮图像?

1 个答案:

答案 0 :(得分:2)

你必须自己改变它,但是很容易得到今天的日期。

然后从那个日期算出月份的日期非常简单,以下是你如何做到这一点:

- (UIImage*)todaysImage{
    //Get todays date
    NSDate *today = [NSDate date];

    //Get the number using NSDateComponents
    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit fromDate:today];
    NSInteger day = [components day];

    //Load the apropiate image based on the number (this means you have an image for all 31 posible days)
    //This line also asumes your images are named DayImage-1.png, DayImage-2.png, DayImage-3.png, etc...
    UIImage *todaysDateImage = [UIImage imageNamed:[NSString stringWithFormat:@"DayImage-%d.png",day]];

    return todaysDateImage;
}

然后在yhou标签栏上设置图像,您只需调用:

tabItem.image = [self todaysImage];

您还可以动态生成自己的图像(并缓存它们,这样您就不必每次都生成)。如果你对这样的事情感兴趣,请看看:

How to capture UIView to UIImage without loss of quality on retina display

它将向您展示如何将UIView呈现为要使用的UIImage对象,而不必将所有31个图像预加载到应用程序中。