码迷,mamicode.com
首页 > 其他好文 > 详细

霓虹灯(跑马灯、方框赛跑)

时间:2015-07-14 11:47:35      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:uicolor   nsarray   alloc   方框赛跑   跑马灯   

直接上代码:

     /*
        代码一: 霓虹灯(跑马灯)
     */

    NSArray *colorArray = [[[NSArray alloc] initWithObjects:[UIColor redColor], [UIColor orangeColor], [UIColor yellowColor], [UIColor greenColor], [UIColor cyanColor], [UIColor blueColor], [UIColor purpleColor], nil] autorelease];
    CGFloat mulValue = [[UIScreen mainScreen] bounds].size.width / 7 ;
    for (int i = 0, j = 0; i < 7; i++,j++) {
        UIView *i = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width - (j * mulValue), [[UIScreen mainScreen] bounds].size.height - (j * mulValue))] ;
        i.backgroundColor = [colorArray objectAtIndex:j];
        i.tag = j + 1 ;
        i.center = self.window.center ;
        [self.window insertSubview:i atIndex:j] ;
        [i release];
    }
    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(run) userInfo:nil repeats:YES] ;
    return YES;
}

- (void)run {
    UIColor *acolor = [self.window viewWithTag:7].backgroundColor;
    for (int i = 7; i >= 1; i--) {
        if (i > 1) {
            [self.window viewWithTag:i].backgroundColor = [self.window viewWithTag:(i - 1)].backgroundColor;
        }
        else{
            [self.window viewWithTag:i].backgroundColor = acolor;
        }
    }
}




NSArray *colors = @[[UIColor redColor], [UIColor orangeColor], [UIColor yellowColor], [UIColor greenColor], [UIColor cyanColor], [UIColor blueColor], [UIColor purpleColor]] ;

    for (int i = 0; i < colors.count; i++) {
        UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.window.bounds.size.width - i * 60, self.window.bounds.size.height - i * 60)] ;
        aView.center = self.window.center ;
        aView.backgroundColor = colors[i] ;
        [self.window addSubview:aView] ;
        [aView release] ;
    }


     /*
         代码二:  霓虹灯(跑马灯)
     */

    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(_changBackgroundColor:) userInfo:[self.window subviews].lastObject repeats:YES] ;


    return YES;
}

- (void)_changBackgroundColor:(NSTimer *)sender {

    UIView *currentView = [sender userInfo] ;
    //暂存当前视图的颜色.
    UIColor *tempColor = currentView.backgroundColor ;
    //获取当前视图在子视图数组中的下标
    NSInteger currentIndex = [self.window.subviews indexOfObject:currentView] ;

    for (NSInteger i = currentIndex - 1; i >= 0; i--) {
        UIView *superView = self.window.subviews[i] ;
        currentView.backgroundColor = superView.backgroundColor ;
        currentView = superView ;
    }   
    currentView.backgroundColor = tempColor ;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

霓虹灯(跑马灯、方框赛跑)

标签:uicolor   nsarray   alloc   方框赛跑   跑马灯   

原文地址:http://blog.csdn.net/zhengang007/article/details/46873081

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!