【问题标题】:Switching background according to time根据时间切换背景
【发布时间】:2014-11-04 14:51:00
【问题描述】:

所以我查看了堆栈溢出,了解如何使用 IF 语句和 NSDateComponents 根据当前时间切换背景图像:

NSDateComponents *components = [NSDateComponents new];
//AM
NSInteger Hour06 = 6; //1EarlyMorning
NSInteger Hour08 = 8; //2Morning
NSInteger Hour11 = 11; //3LateMorning
//PM
NSInteger Hour12 = 12; //4Afternoon
NSInteger Hour16 = 16; //5LateAfternoon
NSInteger Hour18 = 18; //6Evening
NSInteger Hour20 = 20; //7LateEvening
NSInteger Hour21 = 21; //8Night
NSInteger Hour23 = 23; //9LateNight


if (components.hour < Hour18)
{
    self.backgroundImage = [SKSpriteNode spriteNodeWithImageNamed:@"6Evening"];
    self.backgroundImage.position = CGPointMake(self.size.width/2, self.size.height/2);
    self.backgroundImage.zPosition = 0.0; //Default bottom position

    [self addChild:self.backgroundImage];
}

但图像没有改变。我读过这个Changing background according to time - Objective C 也没有帮助。谁能告诉我我错过了什么?

【问题讨论】:

  • 你的代码有点混乱 - 你能展示更多吗?什么是自我?一个 UIView ?
  • 是的,我忘了说这是在 SKScene 中完成的,所以是 SKView(Sprite Kit 游戏)。
  • 你的意思是:如果 (component.hour > Hour18) ... 万一
  • 是的:D 如果有人需要帮助,我也在下面发布了答案。

标签: objective-c ios8 xcode6


【解决方案1】:

我和 YvesLeBorg 找到了答案!如果由于 Sprite Kit 而使用 SKView,则以下方法有效:

-(void)background
{

    NSDateComponents *components = [NSDateComponents new];
    NSInteger Hour18 = 18; //6Evening


    if (components.hour > Hour18)
    {
        self.backgroundImage = [SKSpriteNode spriteNodeWithImageNamed:@"6Evening"];
        self.backgroundImage.position = CGPointMake(self.size.width/2, self.size.height/2);
        self.backgroundImage.zPosition = 0.0; //Default bottom position

        [self addChild:self.backgroundImage];
    }
}

【讨论】:

    猜你喜欢
    • 2020-08-14
    • 2016-05-13
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    相关资源
    最近更新 更多