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


}

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

4

3 回答 3

2

要离开 void 函数,请执行 return 语句...

return;
于 2012-05-10T15:57:55.603 回答
0

你可以:

  • 按下 frame1 时禁用 frame2 按钮
  • 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 回答