2016-06-21 2 views
1

Привет всем, пожалуйста, кто-нибудь, чтобы решить вопросы, которые я могу нарисовать линию на UIImageView, но мне нужно, чтобы удалить существующую линию, если нарисовать новую линию ...Как удалить строку, если нарисовать новую линию

if(selectBtnTag.tag==111) 
    { 
      [self selectedButtonBg:selectBtnTag]; 
       // [self selectBtncolor_Action:@"111" :self.btn_wagonwheel :0]; 
       //[self.img_pichmap setImage:[UIImage imageNamed:@"WagonWheel_img"]]; 
       _View_Appeal.hidden=YES; 
      _view_Wagon_wheel.hidden=NO; 



     _View_Appeal.hidden=YES; 
     self.view_bowlType.hidden = YES; 
     self.view_fastBowl.hidden = YES; 
     self.view_aggressiveShot.hidden = YES; 
     self.view_defensive.hidden = YES; 
     self.img_pichmap.hidden=YES; 
     self.PichMapTittle.hidden=YES; 

     if(IS_IPAD_PRO) 
     { 
      self.height.constant=450; 
      self.width.constant=450; 
     } 
     else{ 
      self.height.constant=350; 
      self.width.constant=350; 
     } 

     if([self.BatmenStyle isEqualToString:@"MSC012"]) 
     { 
      [self.img_WagonWheel setImage:[UIImage imageNamed:@"LHWagon"]]; 
     } 
     else{ 
      [self.img_WagonWheel setImage:[UIImage imageNamed:@"RHWagon"]]; 
     } 

     if (IS_IPAD_PRO) { 
        self.centerlbl=[[UILabel alloc]initWithFrame:CGRectMake(self.img_WagonWheel.frame.size.width/2+46, self.img_WagonWheel.frame.size.width/2+11, 5, 5)]; 
     } 
     else 

     self.centerlbl=[[UILabel alloc]initWithFrame:CGRectMake(self.img_WagonWheel.frame.size.width/2-3, self.img_WagonWheel.frame.size.width/2-30, 5, 5)]; 

     [self.centerlbl setBackgroundColor:[UIColor clearColor]]; 
     [self.img_WagonWheel addSubview:self.centerlbl]; 

     UITapGestureRecognizer* tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didClickWagonWheelmapTapAction:)]; 
     tapRecognizer.numberOfTapsRequired = 1; 
     tapRecognizer.numberOfTouchesRequired=1; 
     tapRecognizer.delegate=self; 
     [self.view_DrawlineWagon addGestureRecognizer:tapRecognizer]; 
     [self.view_DrawlineWagon setUserInteractionEnabled:YES]; 
       self.view_bowlType.hidden = YES; 
       self.view_fastBowl.hidden = YES; 
       self.view_aggressiveShot.hidden = YES; 
       self.view_defensive.hidden = YES; 


    } 
} 




-(void)didClickWagonWheelmapTapAction:(UIGestureRecognizer *)wagon_Wheelgesture 
{ 
    CGPoint p = [wagon_Wheelgesture locationInView:self.img_WagonWheel]; 
    float Xposition = p.x; 
    float Yposition = p.y; 
    CGMutablePathRef straightLinePath = CGPathCreateMutable(); 
    CGPathMoveToPoint(straightLinePath, NULL, Xposition, Yposition); 
    CGPathAddLineToPoint(straightLinePath, NULL,self.centerlbl.center.x,self.centerlbl.center.y); 

// CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(),self.backgroundColor.CGColor); 
//  
// CGContextFillRect(UIGraphicsGetCurrentContext(), rect); 


    CAShapeLayer *shapeLayer = [CAShapeLayer layer]; 
    shapeLayer.path = straightLinePath; 
    UIColor *fillColor = [UIColor redColor]; 
    shapeLayer.fillColor = fillColor.CGColor; 
    UIColor *strokeColor = [UIColor redColor]; 
    shapeLayer.strokeColor = strokeColor.CGColor; 
    shapeLayer.lineWidth = 2.0f; 
    shapeLayer.fillRule = kCAFillRuleNonZero; 


    [self.img_WagonWheel.layer addSublayer:shapeLayer]; 


} 

enter image description here

Вы можете увидеть мои изображения здесь я могу нарисовать несколько строк, но мне нужно сделать одну строку, если я рисую новую линию, существующая линия необходимо удалить, пожалуйста, какой-либо один помочь мне решить эту проблемы ,

Заранее спасибо

+0

удалить Выходящую линию, используя это [self.shapeLayer removeFromSuperlayer]; и создайте новую строку –

+0

, вы не являетесь типом SMS, поэтому избегайте использования u plz и всего слова сортировки –

+0

k fine i ll follow here after – fathima

ответ

1

Измените метод UIGestureRecognizer как этого

-(void)didClickWagonWheelmapTapAction:(UIGestureRecognizer *)wagon_Wheelgesture { 

    for (CALayer *layer in self.img_WagonWheel.layer.sublayers) { 
     if ([layer.name isEqualToString:@"DrawLine"]) { 
      [layer removeFromSuperlayer]; 
      break; 
     } 
    } 
    CGPoint p = [recognizer locationInView:self.imgDraw]; 
    float Xposition = p.x; 
    float Yposition = p.y; 
    CGMutablePathRef straightLinePath = CGPathCreateMutable(); 
    CGPathMoveToPoint(straightLinePath, NULL, Xposition, Yposition); 
    CGPathAddLineToPoint(straightLinePath, NULL,self.view.center.x,self.view.center.y); 
    CAShapeLayer *shapeLayer = [CAShapeLayer layer]; 
    shapeLayer.path = straightLinePath; 
    UIColor *fillColor = [UIColor redColor]; 
    shapeLayer.fillColor = fillColor.CGColor; 
    UIColor *strokeColor = [UIColor redColor]; 
    shapeLayer.strokeColor = strokeColor.CGColor; 
    shapeLayer.lineWidth = 2.0f; 
    shapeLayer.fillRule = kCAFillRuleNonZero; 
    shapeLayer.name = @"DrawLine"; 
    [self.imgDraw.layer addSublayer:shapeLayer]; 
} 

Надеется, что это поможет вам

+0

mr.nirvada его не работает снова, я могу нарисовать линию ...... – fathima

+0

если я нарисую еще одну строку ... существующий должен быть удален, но если я коснусь продолжения существующей линии рисования также видно – fathima

+0

Позвольте мне попробовать и изменить код ... –

Смежные вопросы