以下是应用程序运行时标签栏图标的屏幕截图。
图标显示27表示当天,并且是图像。
有没有办法可以根据当天动态更改日期?
iPhone SDK是否可以根据当前日期动态更改标签栏按钮图像?
答案 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个图像预加载到应用程序中。