霓虹灯的制作(正向,反向,以及停止)

来源:互联网 发布:图形界面c语言 知乎 编辑:程序博客网 时间:2024/06/05 19:24
//先创建一个霓虹灯视图    NSArray *arr = [NSArray arrayWithObjects:[UIColor purpleColor],[UIColor cyanColor],[UIColor blueColor],[UIColor greenColor],[UIColor yellowColor],[UIColor orangeColor],[UIColor redColor], nil];    for (int i = 0; i < 7; i++) {        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(20 + i * 20 , 120 + i * 20, 280 - i * 20 * 2, 280 - i * 20 * 2)];        view.backgroundColor = arr[i];        view.tag = 100 + i;        [_containerView addSubview:view];        [view release];    }
//创建按钮控制霓虹灯停止    UIButton *bun = [UIButton buttonWithType:UIButtonTypeSystem];    bun.frame = CGRectMake(50, 420, 220, 40);    bun.layer.cornerRadius = 5;    [bun setTitle:@"停止" forState:UIControlStateNormal];    [bun addTarget:self action:@selector(bun:) forControlEvents:UIControlEventTouchUpInside];    [_containerView addSubview:bun];

//创建让霓虹灯反向运行的按钮    UIButton *stop = [UIButton buttonWithType:UIButtonTypeSystem];    stop.frame = CGRectMake(50, 480, 220, 40);    stop.layer.cornerRadius = 5;    [stop setTitle:@"反向" forState:UIControlStateNormal];    [stop addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside];    [_containerView addSubview:stop];

//设置时间间隔     _time =  [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(test) userInfo:nil repeats:YES];

//停止事件- (void)bun:(UIButton *)btn{    [_time invalidate];}

//正向运行点击事件- (void)test{   UIView *view = [[UIView alloc] init];    view.backgroundColor = [_containerView viewWithTag:100].backgroundColor;    for (int i = 100; i < 107; i++) {        [_containerView viewWithTag:i].backgroundColor = [_containerView viewWithTag:i + 1].backgroundColor;    }     [_containerView viewWithTag:106].backgroundColor = view.backgroundColor;    [view release];}

//反向运行点击事件- (void)click{     _time =  [NSTimer scheduledTimerWithTimeInterval:0.3 target:self selector:@selector(clicks) userInfo:nil repeats:YES];}- (void)clicks{    UIView *view = [[UIView alloc] init];    view.backgroundColor = [_containerView viewWithTag:106].backgroundColor;    for (int i = 106; i > 99; i--) {        [_containerView viewWithTag:i].backgroundColor = [_containerView viewWithTag:i - 1].backgroundColor;    }    [_containerView viewWithTag:100].backgroundColor = view.backgroundColor;    [view release];}


通过以上步骤,就基本完成了一个可以正向,反向,以及停止的霓虹灯制作.

file:///Users/lanouhn/Desktop/1.gif

0 0