【发布时间】:2013-10-07 09:20:23
【问题描述】:
不确定为什么无法从父视图中删除添加的子视图。如果长按操作结束,我希望将其删除。我用 NSLog 进行了测试,我知道手势正确注册为结束,但它没有删除子视图。
-(void)addSubview:(UILongPressGestureRecognizer *)gesture {
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"overlayView" owner:self options:nil];
UIView *subView = [subviewArray objectAtIndex:0];
if (gesture.state == UIGestureRecognizerStateBegan) {
[self.view addSubview:subView];
}
if (gesture.state == UIGestureRecognizerStateEnded) {
[subView removeFromSuperview];
}
}
所需功能:
长按开始:添加子视图。
长按结束:删除子视图。
【问题讨论】:
-
尝试在 [subView removeFromSuperview] 行添加一个断点只是为了检查哪个视图在那里,确保它不为零。我认为这不起作用的唯一原因是您没有获得对正确视图或任何视图的引用。
-
是的,它没有获得正确的超级视图,但我不确定如何具体调用它。也许我没有正确添加超级视图?
-
查看其他人的答案,当他们说您没有对子视图的引用时,他们感到很困惑。我会选择@Utkarsh Goel 的回答,这似乎是正确的
标签: objective-c views uigesturerecognizer subview