2016-02-28 38 views
0

我正在设计一个自己的比萨饼应用程序。用户将添加多个配料,例如虾,培根等等。所以添加的图像工作正常。这里是我的代码:删除并添加多个图像在同一个UIImageView

- (IBAction)meat0:(id)sender { 
    [self addMeatTopping:@"topping_Bacon" withImage:beykenMeat]; 
} 

- (IBAction)meat1:(id)sender { 
    [self addMeatTopping:@"Steak" withImage:steykMeat]; 
} 

如何创建一个切换方法,当用户选择一个项目:调用上述方法的

bool meatAdded; 
- (void)addMeatTopping:(NSString*)meat withImage:(UIImageView*)meatImage { 
    if ((meatAdded =! meatAdded)) { 
     //crust o taqir bede be cheese BADAN 
     meatImage = [[UIImageView alloc]initWithFrame:_crustImage.bounds]; 
     [meatImage setImage:[UIImage imageNamed:meat]]; 
     [_crustImage addSubview:meatImage]; 

     for (UIButton*button in _meatButtonsArray) { 
      checkMark.center = button.center; 
      checkMark.alpha = 1; 
     } 

     [UIView animateWithDuration:.60 delay:0 usingSpringWithDamping:.40 initialSpringVelocity:.20 options:UIViewAnimationOptionAllowUserInteraction animations:^ { 
      meatImage.transform = CGAffineTransformMakeScale(.5, .5); 
      meatImage.transform = CGAffineTransformMakeScale(1, 1);    } completion:nil]; 
    }else { 
     /**** THIS PART OF CODE DOESN'T WORK ! IT PRINTS LOG BUT DOESN'T CHANGE THE MEAT IMAGE AT ALL ****/ 

     NSLog(@"Remove"); 
     meatImage.alpha = 0; 
     [meatImage setImage:nil]; 
     [meatImage removeFromSuperview]; 
    } 
} 

例子吗?该项目将添加到查看,当再次点击它应该从视图中删除。

+0

为什么不重新加载前一张图片而不是撤消? –

+1

你想用这个if语句做什么? 'if((meatAdded =!meatAdded))'。我怀疑这是你真正想要的,因为否定'meatAdded',然后将新值赋给'meatAdded',然后检查新值是真还是假。 – rmaddy

+0

@TejaNandamuri:没有以前的图像。它由用户逐步添加第一个地壳 - 酱 - 奶酪(有单一的选择),然后肉,蔬菜(这是多选) –

回答

1
SubclassImageView *imageviewG = [[SubclassImageView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)]; 
self.crustImage = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 250, 250)]; 
self.crustImage.backgroundColor = [UIColor redColor]; 
[imageviewG setImage:@"topping_Bacon"]; 

[self.crustImage addSubview:imageviewG]; 
[self.view addSubview:self.crustImage]; 

    for(id viewInner in self.crustImage.subviews){ 
    if([viewInner isKindOfClass:[SubclassImageView class]]){ 
     SubclassImageView *imageSeleted = (SubclassImageView *)viewInner; 
     if([imageSeleted.getImageName isEqualToString:@"topping_Bacon"]){ 
     //your logic to add or remove the imageview from super view 
     }else if([imageSeleted.getImageName isEqualToString:@"Steak"]){ 
     //your logic to add or remove the imageview from super view 
     } 
    } 
} 
+0

// SubclassImageView是子类os UIimageView - (void)setImage:(NSString *)fileName { imageFileName = fileName; [super setImage:[UIImage imageNamed:fileName]]; } - (NSString *)getImageName { return imageFileName; } –

相关问题