1

たとえばchangeColor、使用するメソッドを呼び出すためのメソッドを作成しました

[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"); }


}

フレーム1ボタンを押すと、画像がビューに追加されます。問題は、フレーム2ボタンを押すと、このメソッドの画像もビューに追加されることです。この状況を回避する必要があります。つまり、すべてのボタンをタッチすると、他のボタンのメソッドキャンセルする必要があります

4

3 に答える 3

2

void 関数を終了するには、return ステートメントを実行します...

return;
于 2012-05-10T15:57:55.603 に答える
0

あなたはできる:

  • フレーム1が押されたときにフレーム2ボタンを無効にする
  • setImagesFrame1 の終了時に frame2 ボタンを有効にする

このようなもの:

- (void) setImagesFrame1 {
    frame2.enabled = NO;

    [... your code ...]

    frame2.enable;
}

したがって、誰かがボタン 1 を押した場合、すべての操作が完了するまでボタン 2 を押すことはできません (そして何かを再描画することもできません)。

于 2012-05-10T16:11:38.657 に答える
0

サブビュー配列の最後のビューは画像になります。メソッド [view removeFrom superView] を使用する必要があります。ただし、これを行うには、サブビュー配列に対して高速列挙 (for-In ループ) を使用する必要があります。完全に確認したい場合は、返されたオブジェクトが UIImageView クラスに属しているかどうかを確認できます。次に、setImages メソッドで残りのステートメントを実行する必要があります。

例: `
UIView *tempView;

           for(tempView in self.subviews) {

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

          }
       }

`

于 2012-05-11T13:29:04.837 に答える