【问题标题】:Change tabbar icon based on date根据日期更改标签栏图标
【发布时间】:2012-08-17 11:10:44
【问题描述】:

下面是应用运行时标签栏图标的截图。

图标上写着 27,代表一天,是一个图像。

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

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

【问题讨论】:

    标签: iphone ios uitabbarcontroller uitabbar tabbar


    【解决方案1】:

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

    然后从该日期开始获取月份中的某天非常简单,您可以这样做:

    - (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 张图像预加载到应用程序中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 2016-07-11
      相关资源
      最近更新 更多