您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页开关灯效果

开关灯效果

来源:二三娱乐

要求

 实现开灯时将上下左右的灯都打开,关灯时将上下左右的灯都关闭,当是在最前一排或在最后一排时,注意前面没有灯开

.h文件

#import "ViewController.h"
@interface ViewController ()
@property(strong,nonatomic)UIButton *button;
@property(copy,nonatomic)NSString *str;
@property(copy,nonatomic)NSString *str1;
@property(assign,nonatomic)CGRect rect;
@property(assign,nonatomic)BOOL a;
@end

.m文件

- (void)viewDidLoad {
[super viewDidLoad];
int indxe=5;
CGFloat appW=60;
CGFloat appH=60;
CGFloat appjxX=(self.view.frame.size.width-appW*indxe)/(indxe+1);
CGFloat appjxY=appjxX;
CGFloat apptopY=20;
九宫格循环建立按钮
for (int i=0; i<45; i++) {
    int X=i%indxe;
    int Y=i/indxe;
     self.button=[[UIButton alloc]initWithFrame:CGRectMake((appjxX+appW)*X+appjxX, (appH+appjxY)*Y+appjxY+apptopY, appW, appH)];
     self.str=[NSString stringWithFormat:@"1.jpg"];
     self.str1=[NSString stringWithFormat:@"2.jpg"];
     设置按钮低量、高量图片
    [self.button setBackgroundImage:[UIImage imageNamed:self.str] forState:(UIControlStateNormal)];
    [self.button setBackgroundImage:[UIImage imageNamed:self.str1] forState:UIControlStateHighlighted];
    设置每个按钮的唯一标识
    self.button.tag=i;
    [self.button addTarget:self action:@selector(change:) forControlEvents:(UIControlEventTouchDown)];
    [self.view addSubview:self.button];
   }
}
点击按钮需要实现的方法
-(void)change:(UIButton *)button
{
int i=(int)button.tag;
定义数组,将上下左右的按钮一一标识
int arr[4]={i+1,i-1,i-5,i+5};
判断是否是第一列
if (i%5==0) {
    arr[1]=i+1;
}
判断是否是最后一列
else if (i%5==4)
{
    arr[0]=i-1;
}
如果处于低量状态,那么自己和周围的全变红
if (self.a==YES) {
    [self red:button];
    for (int i=0; i<=4; i++) {
    self.button=[[UIButton alloc]init];
    self.button.frame=[self.view viewWithTag:arr[i]].frame;
    [self red:self.button];
    [self.view addSubview:self.button];
    }
}
关灯效果,在关灯时,将周围的灯全部关掉
else
{
    判断是否是第一列
    if (i%5==0) {
        [self yea:button];
        self.button=[self.view viewWithTag:i+1];
        [self yea:self.button];
        [self.view addSubview:self.button];
        
        self.button=[self.view viewWithTag:i+1];
        [self yea:self.button];
        [self.view addSubview:self.button];
        
        self.button=[self.view viewWithTag:i-5];
        [self yea:self.button];
        [self.view addSubview:self.button];
        
        self.button=[self.view viewWithTag:i+5];
        [self yea:self.button];
        [self.view addSubview:self.button];
    }
    判断是否是最后一列
    else if (i%5==4)
    {
        [self yea:button];
        self.button=[self.view viewWithTag:i-1];
        [self yea:self.button];
        [self.view addSubview:self.button];
        
        self.button=[self.view viewWithTag:i-1];
        [self yea:self.button];
        [self.view addSubview:self.button];
        
        self.button=[self.view viewWithTag:i-5];
        [self yea:self.button];
        [self.view addSubview:self.button];
        
        self.button=[self.view viewWithTag:i+5];
        [self yea:self.button];
        [self.view addSubview:self.button]; 
    }
    
    else
    {
    [self yea:button];
    self.button=[self.view viewWithTag:i+1];
    [self yea:self.button];
    [self.view addSubview:self.button];
    
    self.button=[self.view viewWithTag:i-1];
    [self yea:self.button];
    [self.view addSubview:self.button];

    self.button=[self.view viewWithTag:i-5];
    [self yea:self.button];
    [self.view addSubview:self.button];

    self.button=[self.view viewWithTag:i+5];
    [self yea:self.button];
    [self.view addSubview:self.button];
    }
    }
}
变为红色方法
-(void)red:(UIButton *)button
{
[button setBackgroundImage:[UIImage imageNamed:self.str1] forState:UIControlStateNormal];
self.a=NO;
}
变为黄色方法
-(void)yea:(UIButton *)button
{
[button setBackgroundImage:[UIImage imageNamed:self.str] forState:UIControlStateNormal];
self.a=YES;
}

图片显示效果

屏幕快照 2016-03-08 09.19.27 PM.png 屏幕快照 2016-03-08 09.19.42 PM.png 屏幕快照 2016-03-08 09.20.07 PM.png 屏幕快照 2016-03-08 09.20.44 PM.png

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务