2012-01-08 2 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]; 

보기 컨트롤러 클래스의 ivar로 액세스하려는보기에 대한 참조. 나는 당신의 속성 정의에이를 추가 :

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

는 다음을 합성하는 당신이 그 객체를 만들 때 속성에 할당 한 다음 나중에 쉽게 액세스 할 수 있습니다. 과거에 발견 한 태그를 사용하면보기가 복잡한보기 계층의 맨 아래에있는 것처럼 쉽게 액세스 할 수없는 것처럼 상당히 성가 시게됩니다. 이 작업을 수행하는 경우 ARC를 사용하지 않는 한 dealloc에서도 해당 항목을 해제해야합니다.

+0

답변 감사합니다. 나는 그것을 넣으려고 노력했지만 여전히 눈 레이어는 카메라 뷰의 맨 위에 있습니다. 나는 그 밖의 무엇을 시도 해야할지 모르겠다. ( – Clive

+0

나는 당신이 정직하기 위해 노력하고있는 것을 잘 모르겠다. "눈 레이어가 카메라 뷰의 맨 위에있다"는 것은 무엇을 의미합니까? 카메라보기? "카메라보기"가 어떻게 나타나는지 언급하지 않았습니다. – mattjgalloway

+0

아, 미안하지만, 개인적으로 보낼 수 있습니까? 코드의이 부분에서 30 시간 이상을 보냈습니다. 내 머리를 아프게했습니다! – Clive