iOS 左右两列按钮之间进行连线

该博客介绍了如何在iOS应用中实现从左侧按钮到右侧按钮的连线操作,重点在于点击事件的处理和绘图代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

左边的和右边的进行连线操作:

//
//  Layout72Controller.h
//  happylearning
//
//  Created by aging on 16/5/20.
//  Copyright © 2016年aging. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface Layout72Controller : UIViewController
@property (strong, nonatomic) IBOutlet UIImageView *imgTop;
@property (strong, nonatomic) IBOutlet UIImageView *imgTip;
@property (strong, nonatomic) IBOutlet UILabel *lblTitle;
@property (strong, nonatomic) IBOutlet UIButton *btnNo1;
@property (strong, nonatomic) IBOutlet UIButton *btnNo2;
@property (strong, nonatomic) IBOutlet UIButton *btnNo3;
@property (strong, nonatomic) IBOutlet UIButton *btnNo4;
@property (strong, nonatomic) IBOutlet UIButton *btnNo1_1;
@property (strong, nonatomic) IBOutlet UIButton *btnNo2_2;
@property (strong, nonatomic) IBOutlet UIButton *btnNo3_3;
@property (strong, nonatomic) IBOutlet UIButton *btnNo4_4;
//正确答案
@property (strong, nonatomic) IBOutlet UILabel *lblRealAnswer;

@property (nonatomic,copy)NSString *strLeft;
@property (nonatomic,copy)NSString *strRight;

//判断左右两边显示的文字还是图片
@property (nonatomic,copy)NSString *orderBtn;

//接收正确答案
@property (nonatomic,copy)NSString *realAnswer;

@end

//按钮的点击事件中的代码才是要点!!!

//
//  Layout71Controller.m
//  happylearning
//
//  Created by aging on 16/5/20.
//  Copyright © 2016年 aging. All rights reserved.
//

#import "Layout72Controller.h"

#import "DrawLine.h"

#define PT @"P_T"
#define PP @"P_P"
#define TT @"T_T"
#define TP @"T_P"

@interface Layout72Controller ()
{
    //左边点击的按钮
    NSInteger currentLeft;
    //右边点击的按钮
    NSInteger currentRight;
    
    //记录出划线初始点的位置
    CGFloat drawStartX;
    CGFloat drawStartY;
    //记录划线结束点位置
    CGFloat drawEndX;
    CGFloat drawEndY;
    
    NSNumber *numberStartX;
    NSNumber *numberStartY;
    NSNumber *numberEndX;
    NSNumber *numberEndY;
    
    //线
    UIImageView *imgCon;
    
    //创建一个数组存储每条连线的坐标点
    NSMutableArray *ArrayLineStartX;
    NSMutableArray *ArrayLineStartY;
    NSMutableArray *ArrayLineEndX;
    NSMutableArray *ArrayLineEndY;
    
    //存储连线,判断对错
    NSMutableArray *arrayLineYesOrNo;
    
    //存储正确答案
    NSMutableArray *arrayRealAnswer;
}

@end

@implementation Layout72Controller

- (void)viewDidLoad {
    [super viewDidLoad];
    
    currentLeft=0;
    currentRight=0;
    
     self.lblRealAnswer.hidden=YES;
    
    imgCon=[[UIImageView alloc]initWithFrame:self.view.frame];
    [self.view addSubview:imgCon];
    ArrayLineStartX=[[NSMutableArray alloc]initWithCapacity:0];
     ArrayLineStartY=[[NSMutableArray alloc]initWithCapacity:0];
     ArrayLineEndX=[[NSMutableArray alloc]initWithCapacity:0];
     ArrayLineEndY=[[NSMutableArray alloc]initWithCapacity:0];
    arrayLineYesOrNo=[[NSMutableArray alloc]initWithCapacity:0];
    arrayRealAnswer=[[NSMutableArray alloc]initWithCapacity:0];
    
}

- (void)viewDidAppear:(BOOL)animated
{
    //正确答案存入数组
    NSArray *array=[_realAnswer componentsSeparatedByString:@","];
    [arrayRealAnswer addObjectsFromArray:array];
    
    //左右显示的内容
    NSArray*array1=[_strLeft componentsSeparatedByString:@"/"];
    NSMutableArray *arrayLeft=[NSMutableArray arrayWithArray:array1];
    if ([arrayLeft containsObject:@""]||[arrayLeft containsObject:@" "]) {
        [arrayLeft removeObject:@""];
        [arrayLeft removeObject:@" "];
    }
    
    NSArray*array2=[_strRight componentsSeparatedByString:@"/"];
    NSMutableArray *arrayRight=[NSMutableArray arrayWithArray:array2];
    if ([arrayRight containsObject:@""]||[arrayRight containsObject:@" "]) {
        [arrayRight removeObject:@""];
        [arrayRight removeObject:@" "];
    }
    //左边图片右边文字
    if ([_orderBtn isEqualToString:PT]) {
        [_btnNo1 setBackgroundImage:[UIImage imageNamed:arrayLeft[0]] forState:UIControlStateNormal];
        [_btnNo2 setBackgroundImage:[UIImage imageNamed:arrayLeft[1]] forState:UIControlStateNormal];
        [_btnNo3 setBackgroundImage:[UIImage imageNamed:arrayLeft[2]] forState:UIControlStateNormal];
        [_btnNo4 setBackgroundImage:[UIImage imageNamed:arrayLeft[3]] forState:UIControlStateNormal];
        
        [_btnNo1_1 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo2_2 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo3_3 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo4_4 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        
        [_btnNo1_1 setTitle:arrayRight[0] forState:UIControlStateNormal];
        [_btnNo2_2 setTitle:arrayRight[1] forState:UIControlStateNormal];
        [_btnNo3_3 setTitle:arrayRight[2] forState:UIControlStateNormal];
        [_btnNo4_4 setTitle:arrayRight[3] forState:UIControlStateNormal];
    }
    //左边图片右边图片
    if ([_orderBtn isEqualToString:PP]) {
        [_btnNo1 setBackgroundImage:[UIImage imageNamed:arrayLeft[0]] forState:UIControlStateNormal];
        [_btnNo2 setBackgroundImage:[UIImage imageNamed:arrayLeft[1]] forState:UIControlStateNormal];
        [_btnNo3 setBackgroundImage:[UIImage imageNamed:arrayLeft[2]] forState:UIControlStateNormal];
        [_btnNo4 setBackgroundImage:[UIImage imageNamed:arrayLeft[3]] forState:UIControlStateNormal];
        
        [_btnNo1_1 setBackgroundImage:[UIImage imageNamed:arrayRight[0]] forState:UIControlStateNormal];
        [_btnNo2_2 setBackgroundImage:[UIImage imageNamed:arrayRight[1]] forState:UIControlStateNormal];
        [_btnNo3_3 setBackgroundImage:[UIImage imageNamed:arrayRight[2]] forState:UIControlStateNormal];
        [_btnNo4_4 setBackgroundImage:[UIImage imageNamed:arrayRight[3]] forState:UIControlStateNormal];
        
    }
    //左边文字右边图片
    if ([_orderBtn isEqualToString:TP]) {
        
        [_btnNo1 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo2 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo3 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo4 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        
        [_btnNo1 setTitle:arrayLeft[0] forState:UIControlStateNormal];
        [_btnNo2 setTitle:arrayLeft[1] forState:UIControlStateNormal];
        [_btnNo3 setTitle:arrayLeft[2] forState:UIControlStateNormal];
        [_btnNo4 setTitle:arrayLeft[3] forState:UIControlStateNormal];
        
        [_btnNo1_1 setBackgroundImage:[UIImage imageNamed:arrayRight[0]] forState:UIControlStateNormal];
        [_btnNo2_2 setBackgroundImage:[UIImage imageNamed:arrayRight[1]] forState:UIControlStateNormal];
        [_btnNo3_3 setBackgroundImage:[UIImage imageNamed:arrayRight[2]] forState:UIControlStateNormal];
        [_btnNo4_4 setBackgroundImage:[UIImage imageNamed:arrayRight[3]] forState:UIControlStateNormal];
        
    }
    //左边文字右边文字
    if ([_orderBtn isEqualToString:TT]) {
        
        [_btnNo1 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo2 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo3 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo4 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        
        [_btnNo1 setTitle:arrayLeft[0] forState:UIControlStateNormal];
        [_btnNo2 setTitle:arrayLeft[1] forState:UIControlStateNormal];
        [_btnNo3 setTitle:arrayLeft[2] forState:UIControlStateNormal];
        [_btnNo4 setTitle:arrayLeft[3] forState:UIControlStateNormal];
        
        [_btnNo1_1 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo2_2 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo3_3 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        [_btnNo4_4 setBackgroundImage:[UIImage imageNamed:@"grid_view1.png"] forState:UIControlStateNormal];
        
        [_btnNo1_1 setTitle:arrayRight[0] forState:UIControlStateNormal];
        [_btnNo2_2 setTitle:arrayRight[1] forState:UIControlStateNormal];
        [_btnNo3_3 setTitle:arrayRight[2] forState:UIControlStateNormal];
        [_btnNo4_4 setTitle:arrayRight[3] forState:UIControlStateNormal];
    }
    //添加事件
   
    [self.btnNo1 addTarget:self action:@selector(clickNo1:) forControlEvents:UIControlEventTouchDown];
    [self.btnNo2 addTarget:self action:@selector(clickNo2:) forControlEvents:UIControlEventTouchDown];
    [self.btnNo3 addTarget:self action:@selector(clickNo3:) forControlEvents:UIControlEventTouchDown];
    [self.btnNo4 addTarget:self action:@selector(clickNo4:) forControlEvents:UIControlEventTouchDown];
    
    [self.btnNo1_1 addTarget:self action:@selector(clickNo1_1:) forControlEvents:UIControlEventTouchDown];
    [self.btnNo2_2 addTarget:self action:@selector(clickNo2_2:) forControlEvents:UIControlEventTouchDown];
    [self.btnNo3_3 addTarget:self action:@selector(clickNo3_3:) forControlEvents:UIControlEventTouchDown];
    [self.btnNo4_4 addTarget:self action:@selector(clickNo4_4:) forControlEvents:UIControlEventTouchDown];
}

- (void)clickNo1:(UIButton *)btn
{
    //记录连接线的是那两个按钮(比如:1连2)
    NSString *btnLine=nil;
    
    //记录出划线初始点的位置
     drawStartX=btn.center.x+btn.frame.size.width/2;
     drawStartY=btn.center.y;
    numberStartX=[NSNumber numberWithFloat:drawStartX];
    numberStartY=[NSNumber numberWithFloat:drawStartY];
    
    //当前选择的是左边第一个按钮
    if (currentLeft==1) {
        currentLeft=0;
    }
    else
    {
        currentLeft=1;
        //如果右边的也点击了
        if (currentRight>0) {
            //划线
            [ArrayLineStartX addObject:numberStartX];
            [ArrayLineStartY addObject:numberStartY];
            [ArrayLineEndX addObject:numberEndX];
            [ArrayLineEndY addObject:numberEndY];
       imgCon.image=[self drawLineInRect:imgCon.frame start:CGPointMake(drawStartX, drawStartY) end:CGPointMake(drawEndX, drawEndY)];

            btnLine=[NSString stringWithFormat:@"%i连%i",currentLeft,currentRight];
            //连线结果添加进数组
            [arrayLineYesOrNo addObject:btnLine];
//            NSLog(@"arrayLineYes:%@\nbtnLine:%@",arrayLineYesOrNo,btnLine);
          
            currentLeft=0;
            currentRight=0;
        }
    }

    //添加红色外框
    [btn.layer setBorderColor:[UIColor redColor].CGColor];
    [btn.layer setBorderWidth:3.0];
    [btn.layer setMasksToBounds:YES];
    
    [_btnNo2.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo2.layer setBorderWidth:0];
    [_btnNo3.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo3.layer setBorderWidth:0];
    [_btnNo4.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo4.layer setBorderWidth:0];
    

}
- (void)clickNo2:(UIButton *)btn
{

    //记录连接线的是那两个按钮(比如:1连2)
    NSString *btnLine=nil;
    
    //记录出划线初始点的位置
    drawStartX=btn.center.x+btn.frame.size.width/2;
    drawStartY=btn.center.y;
    numberStartX=[NSNumber numberWithFloat:drawStartX];
    numberStartY=[NSNumber numberWithFloat:drawStartY];
    
    //当前选择的是左边第2个按钮
    if (currentLeft==2) {
        currentLeft=0;
    }
    else
    {
        currentLeft=2;
        //如果右边的也点击了
        if (currentRight>0) {
            //划线
            [ArrayLineStartX addObject:numberStartX];
            [ArrayLineStartY addObject:numberStartY];
            [ArrayLineEndX addObject:numberEndX];
            [ArrayLineEndY addObject:numberEndY];
       imgCon.image=[self drawLineInRect:imgCon.frame start:CGPointMake(drawStartX, drawStartY) end:CGPointMake(drawEndX, drawEndY)];
            
            btnLine=[NSString stringWithFormat:@"%i连%i",currentLeft,currentRight];
            //连线结果添加进数组
            [arrayLineYesOrNo addObject:btnLine];
//             NSLog(@"arrayLineYes:%@\nbtnLine:%@",arrayLineYesOrNo,btnLine);

            currentLeft=0;
            currentRight=0;
        }
    }
    
    
    //添加红色外框
    [btn.layer setBorderColor:[UIColor redColor].CGColor];
    [btn.layer setBorderWidth:3.0];
    [btn.layer setMasksToBounds:YES];
    [_btnNo1.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo1.layer setBorderWidth:0];
    [_btnNo3.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo3.layer setBorderWidth:0];
    [_btnNo4.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo4.layer setBorderWidth:0];
}
- (void)clickNo3:(UIButton *)btn
{

    //记录连接线的是那两个按钮(比如:1连2)
    NSString *btnLine=nil;
    
    //记录出划线初始点的位置
    drawStartX=btn.center.x+btn.frame.size.width/2;
    drawStartY=btn.center.y;
    numberStartX=[NSNumber numberWithFloat:drawStartX];
    numberStartY=[NSNumber numberWithFloat:drawStartY];
    
    //当前选择的是左边第3个按钮
    if (currentLeft==3) {
        currentLeft=0;
    }
    else
    {
        currentLeft=3;
        //如果右边的也点击了
        if (currentRight>0) {
            //划线
            [ArrayLineStartX addObject:numberStartX];
            [ArrayLineStartY addObject:numberStartY];
            [ArrayLineEndX addObject:numberEndX];
            [ArrayLineEndY addObject:numberEndY];
        imgCon.image=[self drawLineInRect:imgCon.frame start:CGPointMake(drawStartX, drawStartY) end:CGPointMake(drawEndX, drawEndY)];
            
            btnLine=[NSString stringWithFormat:@"%i连%i",currentLeft,currentRight];
            //连线结果添加进数组
            [arrayLineYesOrNo addObject:btnLine];
//             NSLog(@"arrayLineYes:%@\nbtnLine:%@",arrayLineYesOrNo,btnLine);
            currentLeft=0;
            currentRight=0;
        }
    }
    
    //添加红色外框
    [btn.layer setBorderColor:[UIColor redColor].CGColor];
    [btn.layer setBorderWidth:3.0];
    [btn.layer setMasksToBounds:YES];
    [_btnNo1.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo1.layer setBorderWidth:0];
    [_btnNo2.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo2.layer setBorderWidth:0];
    [_btnNo4.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo4.layer setBorderWidth:0];
}
- (void)clickNo4:(UIButton *)btn
{
    //记录连接线的是那两个按钮(比如:1连2)
    NSString *btnLine=nil;
    
    //记录出划线初始点的位置
    drawStartX=btn.center.x+btn.frame.size.width/2;
    drawStartY=btn.center.y;
    numberStartX=[NSNumber numberWithFloat:drawStartX];
    numberStartY=[NSNumber numberWithFloat:drawStartY];
    
    //当前选择的是左边第4个按钮
    if (currentLeft==4) {
        currentLeft=0;
    }
    else
    {
        currentLeft=4;
        //如果右边的也点击了
        if (currentRight>0) {
            //画线
            [ArrayLineStartX addObject:numberStartX];
            [ArrayLineStartY addObject:numberStartY];
            [ArrayLineEndX addObject:numberEndX];
            [ArrayLineEndY addObject:numberEndY];
           imgCon.image=[self drawLineInRect:imgCon.frame start:CGPointMake(drawStartX, drawStartY) end:CGPointMake(drawEndX, drawEndY)];
            
            btnLine=[NSString stringWithFormat:@"%i连%i",currentLeft,currentRight];
            //连线结果添加进数组
            [arrayLineYesOrNo addObject:btnLine];
// NSLog(@"arrayLineYes:%@\nbtnLine:%@",arrayLineYesOrNo,btnLine);
            currentLeft=0;
            currentRight=0;
        }
    }

    
    //添加红色外框
    [btn.layer setBorderColor:[UIColor redColor].CGColor];
    [btn.layer setBorderWidth:3.0];
    [btn.layer setMasksToBounds:YES];
    [_btnNo1.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo1.layer setBorderWidth:0];
    [_btnNo3.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo3.layer setBorderWidth:0];
    [_btnNo2.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo2.layer setBorderWidth:0];
}

- (void)clickNo1_1:(UIButton *)btn
{

    //记录连接线的是那两个按钮(比如:1连2)
    NSString *btnLine=nil;
    
    //记录出划线结束点的位置
    drawEndX=btn.center.x-btn.frame.size.width/2;
    drawEndY=btn.center.y;
    numberEndX=[NSNumber numberWithFloat:drawEndX];
    numberEndY=[NSNumber numberWithFloat:drawEndY];

    
    //当前选择的是右边第一个按钮
    if (currentRight==1) {
        currentRight=0;
    }
    else
    {
        currentRight=1;
        //如果右边的也点击了
        if (currentLeft>0) {
            //划线
            [ArrayLineStartX addObject:numberStartX];
            [ArrayLineStartY addObject:numberStartY];
            [ArrayLineEndX addObject:numberEndX];
            [ArrayLineEndY addObject:numberEndY];
            imgCon.image=[self drawLineInRect:imgCon.frame start:CGPointMake(drawStartX, drawStartY) end:CGPointMake(drawEndX, drawEndY)];
            
            btnLine=[NSString stringWithFormat:@"%i连%i",currentLeft,currentRight];
            //连线结果添加进数组
            [arrayLineYesOrNo addObject:btnLine];

            currentLeft=0;
            currentRight=0;
        }
    }
    
    //添加红色外框
    [btn.layer setBorderColor:[UIColor redColor].CGColor];
    [btn.layer setBorderWidth:3.0];
    [btn.layer setMasksToBounds:YES];
    [_btnNo4_4.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo4_4.layer setBorderWidth:0];
    [_btnNo3_3.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo3_3.layer setBorderWidth:0];
    [_btnNo2_2.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo2_2.layer setBorderWidth:0];

    
}
- (void)clickNo2_2:(UIButton *)btn
{

    //记录连接线的是那两个按钮(比如:1连2)
    NSString *btnLine=nil;
    
    //记录出划线结束点的位置
    drawEndX=btn.center.x-btn.frame.size.width/2;
    drawEndY=btn.center.y;
    numberEndX=[NSNumber numberWithFloat:drawEndX];
    numberEndY=[NSNumber numberWithFloat:drawEndY];
    
    //当前选择的是右边第二个按钮
    if (currentRight==2) {
        currentRight=0;
    }
    else
    {
        currentRight=2;
        //如果右边的也点击了
        if (currentLeft>0) {
            //划线
            [ArrayLineStartX addObject:numberStartX];
            [ArrayLineStartY addObject:numberStartY];
            [ArrayLineEndX addObject:numberEndX];
            [ArrayLineEndY addObject:numberEndY];
            imgCon.image=[self drawLineInRect:imgCon.frame start:CGPointMake(drawStartX, drawStartY) end:CGPointMake(drawEndX, drawEndY)];
            
            btnLine=[NSString stringWithFormat:@"%i连%i",currentLeft,currentRight];
            //连线结果添加进数组
            [arrayLineYesOrNo addObject:btnLine];

            currentLeft=0;
            currentRight=0;
        }
    }
    
    //添加红色外框
    [btn.layer setBorderColor:[UIColor redColor].CGColor];
    [btn.layer setBorderWidth:3.0];
    [btn.layer setMasksToBounds:YES];
    [_btnNo4_4.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo4_4.layer setBorderWidth:0];
    [_btnNo3_3.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo3_3.layer setBorderWidth:0];
    [_btnNo1_1.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo1_1.layer setBorderWidth:0];
}
- (void)clickNo3_3:(UIButton *)btn
{

    //记录连接线的是那两个按钮(比如:1连2)
    NSString *btnLine=nil;
    
    //记录出划线结束点的位置
    drawEndX=btn.center.x-btn.frame.size.width/2;
    drawEndY=btn.center.y;
    numberEndX=[NSNumber numberWithFloat:drawEndX];
    numberEndY=[NSNumber numberWithFloat:drawEndY];
    
    //当前选择的是右边第三个按钮
    if (currentRight==3) {
        currentRight=0;
    }
    else
    {
        currentRight=3;
        //如果右边的也点击了
        if (currentLeft>0) {
            //划线
            [ArrayLineStartX addObject:numberStartX];
            [ArrayLineStartY addObject:numberStartY];
            [ArrayLineEndX addObject:numberEndX];
            [ArrayLineEndY addObject:numberEndY];
            imgCon.image=[self drawLineInRect:imgCon.frame start:CGPointMake(drawStartX, drawStartY) end:CGPointMake(drawEndX, drawEndY)];
            
            btnLine=[NSString stringWithFormat:@"%i连%i",currentLeft,currentRight];
            //连线结果添加进数组
            [arrayLineYesOrNo addObject:btnLine];

            currentLeft=0;
            currentRight=0;
        }
    }

    //添加红色外框
    [btn.layer setBorderColor:[UIColor redColor].CGColor];
    [btn.layer setBorderWidth:3.0];
    [btn.layer setMasksToBounds:YES];
    [_btnNo4_4.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo4_4.layer setBorderWidth:0];
    [_btnNo1_1.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo1_1.layer setBorderWidth:0];
    [_btnNo2_2.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo2_2.layer setBorderWidth:0];
    
}
- (void)clickNo4_4:(UIButton *)btn
{

    //记录连接线的是那两个按钮(比如:1连2)
    NSString *btnLine=nil;
    
    //记录出划线结束点的位置
    drawEndX=btn.center.x-btn.frame.size.width/2;
    drawEndY=btn.center.y;
    numberEndX=[NSNumber numberWithFloat:drawEndX];
    numberEndY=[NSNumber numberWithFloat:drawEndY];
    
    //当前选择的是右边第四个按钮
    if (currentRight==4) {
        currentRight=0;
    }
    else
    {
        currentRight=4;
        //如果右边的也点击了
        if (currentLeft>0) {
            //划线
            [ArrayLineStartX addObject:numberStartX];
            [ArrayLineStartY addObject:numberStartY];
            [ArrayLineEndX addObject:numberEndX];
            [ArrayLineEndY addObject:numberEndY];
            
          imgCon.image=[self drawLineInRect:imgCon.frame start:CGPointMake(drawStartX, drawStartY) end:CGPointMake(drawEndX, drawEndY)];
            
            btnLine=[NSString stringWithFormat:@"%i连%i",currentLeft,currentRight];
            //连线结果添加进数组
            [arrayLineYesOrNo addObject:btnLine];
// NSLog(@"arrayLineYes:%@\nbtnLine:%@",arrayLineYesOrNo,btnLine);
            currentLeft=0;
            currentRight=0;
            
        }
    }

    //添加红色外框
    [btn.layer setBorderColor:[UIColor redColor].CGColor];
    [btn.layer setBorderWidth:3.0];
    [btn.layer setMasksToBounds:YES];
    [_btnNo1_1.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo1_1.layer setBorderWidth:0];
    [_btnNo3_3.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo3_3.layer setBorderWidth:0];
    [_btnNo2_2.layer setBorderColor:[UIColor clearColor].CGColor];
    [_btnNo2_2.layer setBorderWidth:0];
}

//绘制连线
-(UIImage *)drawLineInRect:(CGRect)rect start:(CGPoint)spoint end:(CGPoint)epoint
{
    UIImage *scaledImage=nil;
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context=UIGraphicsGetCurrentContext();
    CGContextSetLineCap(context, kCGLineCapRound);
    CGContextSetLineWidth(context, 3);//线宽
    CGContextSetAllowsAntialiasing(context, true);
    CGContextSetRGBStrokeColor(context, 0.0 / 255.0, 0.0 / 255.0, 0.0 / 255.0, 1.0);  //线的颜色
    CGContextBeginPath(context);
    
    for (int i=0; i<ArrayLineEndY.count; i++) {
        
        CGContextMoveToPoint(context, [ArrayLineStartX[i] floatValue], [ArrayLineStartY[i] floatValue]);  //起点坐标
        CGContextAddLineToPoint(context, [ArrayLineEndX[i] floatValue], [ArrayLineEndY[i] floatValue]);   //终点坐标
        
        CGContextStrokePath(context);
    }
    
     scaledImage=UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值