我在这里看了几个例子,但没有任何作用,所以这里... 我有一个子视图,它启动并正常工作,相机拍摄照片,然后右下角出现一个缩略图,点击时我想发布子视图,但无论我如何尝试我都无法摆脱子视图!< / p>
代码:
-(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;
}
所以我的subView被称为眼睛,我只需要在缩略图轻拍动作下清除该视图。任何想法都会很棒!
答案 0 :(得分:1)
我不确定我是完全关注的,但是你不想只将它添加到thumbnailTapped:
的底部:
[[self.view viewWithTag:EYES_TAG] removeFromSuperview];
顺便说一句,不是使用标签,最好是存储对要作为视图控制器类的ivar访问的视图的引用。我会将此添加到您的属性定义中:
@property (nonatomic, retain) UIImageView *eyes;
@property (nonatomic, retain) UIButton *binocsButton;
然后合成它们,当您创建这些对象时,指定属性,然后您可以稍后更轻松地访问它们。使用过去发现的标签会让人非常恼火,就好像视图位于复杂视图层次结构的底部,您无法轻松访问它。如果您这样做,请记住也在dealloc
中释放它们(除非您使用ARC)。