iOS版:取消void函数

iOS版:取消void函数

问题描述:

我创建例如changeColor一个方法调用该方法,我们使用iOS版:取消void函数

[self changeColor]; 

,但我怎么能取消这些方法?

编辑: 这里是我的代码,我有几个按钮,他们的一些图像添加到图像视图

- (void) setImagesFrame1 { 


     NSMutableArray *imageArray = [[NSMutableArray alloc]initWithCapacity:12]; 
     for (int i = 0; i <= 12; i++) { 
     NSString *fileName = [NSString stringWithFormat:@"a%d.png",i]; 
     UIImage *j = [UIImage imageNamed:fileName]; 
     UIImageView *tempImage = [[UIImageView alloc]initWithImage:j]; 
     [imageArray addObject:tempImage]; 
     [self createPageWithImage:tempImage forPage:i]; 

    } 


} 


- (void) setImagesFrame2 { 


     NSMutableArray *imageArray = [[NSMutableArray alloc]initWithCapacity:12]; 
     for (int i = 0; i <= 12; i++) { 
     NSString *fileName = [NSString stringWithFormat:@"s%d.png",i]; 
     UIImage *j = [UIImage imageNamed:fileName]; 
     UIImageView *tempImage = [[UIImageView alloc]initWithImage:j]; 
     [imageArray addObject:tempImage]; 
     [self createPageWithImage:tempImage forPage:i]; 

    } 


} 

等等...

我打电话给我的方法,这个动作:

- (IBAction)openFrames:(UIButton *)sender { 


    [captureView addSubview:framesPreviewView]; 
    [framesPreviewView sendSubviewToBack:captureView]; 
    framesPreviewView.frame = CGRectMake(img.bounds.origin.x, img.bounds.origin.y, img.bounds.size.width, img.bounds.size.height); 

     //buttons 
    if (sender == frame1) { [self setImagesFrame1]; } 
    if (sender == frame2) { NSLog(@"frame2"); } 
    if (sender == frame3) { [self setImagesFrame3]; NSLog(@"frame3"); } 


} 

当我按下frame1按钮的图像将被添加到我的观点,问题是当我按frame2按钮这个方法的图像也添加到我的观点我需要避免出现这种情况,这意味着当我触摸到每个按钮其他按钮的方法应该取消

+1

你说的 '取消' 是什么意思?函数是如何被调用的?你有没有听说过'return'关键字? –

+0

请解释你的意思是取消吗? –

+0

从功能内取消或从功能外取消? – Jaybit

你的子视图数组的最后一个视图将是图像,你应该使用方法[view removeFrom superView]; 但是,要做到这一点,你需要在子视图数组上使用快速枚举(for-In循环)。 如果你想完全确定,你可以检查重新调用的对象,如果它属于UIImageView类。然后你应该在你的setImages方法中执行剩余的语句。例如:
UIView * tempView;

  for(tempView in self.subviews) { 

      if([tempView isKindOfClass:[UIImageView class] ]){ 
      [tempView removeFromSuperView]; 

      } 
     } 

`

要留下空隙函数执行return语句...

return; 
+0

究竟应该把这个代码放在哪里?例如一个按钮执行该功能,另一个则取消它 –

+0

请发布一些关于您正在尝试实现的功能的代码和详细信息。 –

+0

我编辑我的问题 –

您可以:

当帧1被压
  • 使帧2按钮时setImagesFrame1结束
    • 禁用帧2按钮

    事情是这样的:

    - (void) setImagesFrame1 { 
        frame2.enabled = NO; 
    
        [... your code ...] 
    
        frame2.enable; 
    } 
    

    因此,如果有人按下按钮1,他不能按按钮2(和重绘的东西),直到所有操作完成。

  • +0

    没有我的问题是关于添加对象到我的UIView –