2012-01-08 6 views
2

私はここを見て、いくつかの例を見いだしましたが、ここでは何も動作しません... 私はサブビューを開始して正常に動作し、カメラは写真を撮ってからサムネイルを下に表示します右クリックするとサブビューがリリースされますが、どのように試してもサブビューを取り除くことはできません!サブビューを削除する

コード:

-(void)onSingleTap:(UITouch*)touch { 
NSLog(@"onSingleTap"); 
    UIImageView *eyes = [[[UIImageView alloc] initWithImage:[UIImage  imageNamed:@"binocs.png"]] autorelease]; 
eyes.tag = EYES_TAG; 
    [self.overlayView addSubview:eyes]; 
    [camera takePicture]; 
    } 

その後サムネイルアクション:

- (void)thumbnailTapped:(id)sender { 
    self.view.alpha = 99.0f;  
    UIButton *binocsButton = (UIButton*)[self.view viewWithTag:BINOCS_BUTTON_TAG]; 
binocsButton.hidden = YES; 

    } 

だから私のサブビューが呼ばれ、目と私はちょうどサムネイルタップ作用の下で、そのビューをクリアする必要があります。どんなアイデアが素晴らしいだろう!

答えて

1

は、私は完全に従ってわからないんだけど、あなただけthumbnailTapped:の下にこれを追加する必要はありません。むしろ、それは保存するために、おそらくより良いさんのタグを使用するよりも、ところで

[[self.view viewWithTag:EYES_TAG] removeFromSuperview]; 

View Controllerクラスのivarとしてアクセスしたいビューへの参照。私はあなたの財産の定義にこれを追加します。

@property (nonatomic, retain) UIImageView *eyes; 
@property (nonatomic, retain) UIButton *binocsButton; 

は、次にそれらを合成して、あなたはそれらのオブジェクトを作成するときに、プロパティに割り当て、後で簡単にアクセスできます。過去に見つかったタグを使用すると、ビューが複雑なビュー階層の最下部にあるように簡単にアクセスできないようになり、非常に迷惑になります。これを行う場合は、ARCを使用していない限り、deallocにも忘れずにリリースしてください。

+0

こんにちは、ありがとうございました。私はそれを入れてみましたが、まだ目のレイヤーはカメラビューの上にあります。私は他に何を試していいのかわかりません:( – Clive

+0

正直であるためにあなたがしていることに従っているかどうかわかりません。 "目のレイヤーはカメラビューの上にあります"とはどういう意味ですか? – mattjgalloway

+0

ああ、申し訳ありませんが、私はそれを私的に送ることができますか?私はコードのこの部分に30時間以上費やしており、本当に私の脳を傷つけています! – Clive

関連する問題