在特定日期的特定时间段内更改UILabel文本

时间:2015-07-17 06:23:49

标签: ios

首先,让我为提出一个毫无疑问的问题而道歉,因为99%的人会看到这个问题。我已经搜索并遇到了不同的想法,但似乎无法让我的头脑实现它们。

基本上我想要做的就是有一个UILabel,例如“这是一个测试”而不是2小时,在星期五下午4点到6点之间会说“这不是一个测试“然后从下午6:01它将恢复回来说”这是一个测试“,并将在每个星期五重复。

我正在使用MarqueeLabel,它是UILabel的子类,这是通过Interface Builder和viewDidLoad中的以下代码完成的。

self.scrollingLabel.marqueeType = MLContinuous;

self.scrollingLabel.scrollDuration = 40.0f;

self.scrollingLabel.fadeLength = 10.0f;

self.scrollingLabel.text = @"This is a test";

self.scrollingLabel.userInteractionEnabled = YES;
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pauseTap:)];

tapRecognizer.numberOfTapsRequired = 1;

tapRecognizer.numberOfTouchesRequired = 1;

[self.scrollingLabel addGestureRecognizer:tapRecognizer];

self.scrollingLabel.layer.shadowColor = [UIColor blackColor].CGColor;

self.scrollingLabel.layer.shadowOffset = CGSizeMake(1.0f,1.0f);

self.scrollingLabel.layer.masksToBounds = NO;

self.scrollingLabel.layer.shadowRadius = 1.5f;

self.scrollingLabel.layer.shadowOpacity = 0.6;

再次道歉,如果这没有意义,但我是 Xcode 的新手,这是我关于堆栈溢出的第一个问题。

任何指向正确方向的东西都会非常感激。

1 个答案:

答案 0 :(得分:0)

[NSTimer scheduledTimerWithTimeInterval:1.0
    target:self
    selector:@selector(targetMethod)
    userInfo:nil
    repeats:NO];
put this line to `viewDidLoad` method



And

-(void)targetMethod{
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE HH mm"];
 NSDate *dt = [NSDate date];
 NSString *dayAString = [formatter stringFromDate:dt];
 NSArray *array = [dayAString componentsSeparatedByString: @" "];
 if([[array objectAtIndex:0] isEqualToString:@"Friday"] && [[array objectAtIndex:1] intValue]>=4 &&  [[array objectAtIndex:1] intValue]<=6 && [[array objectAtIndex:2] intValue]>=0 && [[array objectAtIndex:2] intValue]<=59)
       {
               self.scrollingLabel.text=@"this is not a test";
                 NSLog(@"On Air");
       }
       else{
               self.scrollingLabel.text=@"This is a test";
                  NSLog(@"Off Air");
       }
}