2012-05-10 20 views
1

我創建例如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

回答

0

你的子視圖數組的最後一個視圖將是圖像,你應該使用方法[view removeFrom superView]; 但是,要做到這一點,你需要在子視圖數組上使用快速枚舉(for-In循環)。 如果你想完全確定,你可以檢查重新調用的對象,如果它屬於UIImageView類。然後你應該在你的setImages方法中執行剩餘的語句。例如:
UIView * tempView;

  for(tempView in self.subviews) { 

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

      } 
     } 

`

2

要留下空隙函數執行return語句...

return; 
+0

究竟應該把這個代碼放在哪裏?例如一個按鈕執行該功能,另一個則取消它 –

+0

請發佈一些關於您正在嘗試實現的功能的代碼和詳細信息。 –

+0

我編輯我的問題 –

0

您可以:

當幀1被壓
  • 使幀2按鈕時setImagesFrame1結束
    • 禁用幀2按鈕

    事情是這樣的:

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

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

  • +0

    沒有我的問題是關於添加對象到我的UIView –