美文网首页
KaleidoscopeGame

KaleidoscopeGame

作者: HQFlying | 来源:发表于2015-07-26 23:03 被阅读23次

    创建一个点击button实现万花筒效果的视图

    效果图如下所示

    //创建万花筒视图

    for(NSInteger i = 0; i < 16; i++) {

    centerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300 -20 * i, 300 - 20 * i)];

    centerView.center = self.window.center;

    centerView.layer.borderColor = [UIColor grayColor].CGColor;

    centerView.layer.borderWidth = 1;

    centerView.tag = 200 + i;

    centerView.layer.cornerRadius = 150 - i * 10;

    [self.window addSubview:centerView];

    [centerView release];

    }


    //创建控制按钮

    //启动按钮

    UIButton*startButton = [UIButton buttonWithType:UIButtonTypeSystem];

    startButton.frame = CGRectMake(150, 90, 75, 30);

    startButton.backgroundColor = [UIColor grayColor];

    [startButton setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];

    [startButton setTitle:@"启动" forState:UIControlStateNormal];

    startButton.titleLabel.font = [UIFont systemFontOfSize:25];

    [startButton addTarget:self action:@selector(pressStartButton)forControlEvents:UIControlEventTouchUpInside];

    [self.window addSubview:startButton];


    //停止按钮

    UIButton*stopButton = [UIButton buttonWithType:UIButtonTypeSystem];

    stopButton.frame = CGRectMake(150, 597, 75, 30);

    stopButton.backgroundColor = [UIColor grayColor];

    [stopButton setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];

    stopButton.titleLabel.font = [UIFont systemFontOfSize:25];

    [stopButton setTitle:@"停止" forState:UIControlStateNormal];

    [stopButton addTarget:self action:@selector(pressStopButton)forControlEvents:UIControlEventTouchUpInside];

    [self.windowaddSubview:stopButton];


    //需要用到的方法

    //点击button启动万花筒

    - (void) pressStartButton {

    //使用了定时器,使视图达到转动的效果

    myTimer =[NSTimer scheduledTimerWithTimeInterval:0.3 target:self selector:@selector(colorChange)userInfo:nil repeats:YES];

    }


    //点击button停止万花筒

    - (void) pressStopButton {

    //当定时器停止运转的时候, 万花筒的效果也就自然结束

    [myTimer invalidate];

    }


    //为视图随机添加颜色, 并使靠内视图的颜色赋给靠外视图

    - (void)colorChange {

    for(NSInteger i = 15; i >= 0; i--) {

    //使用tag值寻找到相应的视图

    [self.window viewWithTag:214 -i].backgroundColor = [self.windowviewWithTag:215 - i].backgroundColor;

    [self.window viewWithTag:215 -i].backgroundColor = [UIColor colorWithRed:arc4random() % 256 /255. green:arc4random() % 256 / 255. blue:arc4random() % 256 / 255.alpha:arc4random() * 11 / 10.];

    }

    }

    相关文章

      网友评论

          本文标题:KaleidoscopeGame

          本文链接:https://www.haomeiwen.com/subject/yyjmqttx.html