【发布时间】:2012-08-17 11:10:44
【问题描述】:
下面是应用运行时标签栏图标的截图。
图标上写着 27,代表一天,是一个图像。
有没有办法可以根据当天动态更改日期?
iPhone SDK 是否有办法根据当前日期动态更改标签栏栏按钮图像?
【问题讨论】:
标签: iphone ios uitabbarcontroller uitabbar tabbar
下面是应用运行时标签栏图标的截图。
图标上写着 27,代表一天,是一个图像。
有没有办法可以根据当天动态更改日期?
iPhone SDK 是否有办法根据当前日期动态更改标签栏栏按钮图像?
【问题讨论】:
标签: iphone ios uitabbarcontroller uitabbar tabbar
您必须自己更改它,但是很容易得到今天的日期。
然后从该日期开始获取月份中的某天非常简单,您可以这样做:
- (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;
}
然后在你的标签栏上设置图像,你只需调用:
tabItem.image = [self todaysImage];
您还可以动态生成自己的图像(并缓存它们,这样您就不必每次都生成)。如果你对类似的东西感兴趣,看看这个:
How to capture UIView to UIImage without loss of quality on retina display
它将向您展示如何将 UIView 渲染到 UIImage 对象中使用,而不必将所有 31 张图像预加载到应用程序中。
【讨论】: