iOS:删除位于UITableView之上的UIView会导致无法与表交互
我有一个有一大堆行的UITableView。当用户点击一行时,一个自定义弹出窗口(自定义UIView)将显示在表的顶部:iOS:删除位于UITableView之上的UIView会导致无法与表交互,ios,uitableview,uiview,popup,Ios,Uitableview,Uiview,Popup,我有一个有一大堆行的UITableView。当用户点击一行时,一个自定义弹出窗口(自定义UIView)将显示在表的顶部: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { PopUp *myPopUp = [[PopUp alloc] initWithFrame:CGRectMake(0, 0, 320, 568)]; [self.view a
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
PopUp *myPopUp = [[PopUp alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
[self.view addSubview:myPopUp];
}
我正在从nib加载自定义UIView弹出窗口:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self loadNib];
}
return self;
}
- (void) loadNib
{
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"PopUp" owner:self options:nil];
UIView *mainView = [subviewArray objectAtIndex:0];
[self addSubview:mainView];
}
在弹出窗口中,按下按钮时会导致弹出窗口关闭:
- (IBAction)closePopUp:(id)sender
{
[self removeFromSuperview];
}
按下按钮时,弹出窗口消失。但是,下面的UITableView不能再与交互,即用户不能滚动表格,不能点击另一行等。。我想弹出消失,并有表完全互动了。有人能解释为什么会发生这种情况,以及我如何解决这个问题吗?谢谢
用截图编辑
具有一行数据的UITableView:
选择一行后,myPopUp将显示在顶部:
当按下x自定义按钮时,它调用closePopUp,从superview中删除myPopUp:
用户现在无法与表交互。用户无法选择行、滚动表格等
我不知道在您的特定情况下发生了什么,但我可以告诉您,将子视图添加到UITableView可能会导致像这样的意外行为,这通常是一个坏主意 为了修复正在发生的事情并获得更清晰的结构,我建议您将弹出视图添加到窗口中,而不是添加到表视图中
[self.view.window addSubview:myPopUp];
我不知道在您的特定情况下发生了什么,但我可以告诉您,将子视图添加到UITableView可能会导致像这样的意外行为,这通常是一个坏主意 为了修复正在发生的事情并获得更清晰的结构,我建议您将弹出视图添加到窗口中,而不是添加到表视图中
[self.view.window addSubview:myPopUp];
实际上,您正在删除从nib文件加载的视图,但父视图是另一个空白UIView,它捕获0、0、320、568 rect中的每个触摸 尝试从closePopUp方法中删除superview:
实际上,您正在删除从nib文件加载的视图,但父视图是另一个空白UIView,它捕获0、0、320、568 rect中的每个触摸 尝试从closePopUp方法中删除superview:
我已经尝试过你的解决方案,但是当我删除myPopUp时,用户根本无法与屏幕交互。如果这有助于澄清我的问题,我已经用截图编辑了我的帖子:。。。不过,我在调试过程中发现了一些东西:如果我将帧设置为0,0,那么用户可以与它后面的表交互,但不能与myPopUp交互。当帧为320568时,用户可以与myPopUp交互,但不能与它后面的表交互。@您可以在Xcode断点后键入以下命令来检查视图层次结构:po[self recursiveDescription]。这对于调试像这样的视图问题很方便。我已经尝试过你的解决方案,但是当我删除myPopUp时,用户根本无法与屏幕交互。如果这有助于澄清我的问题,我已经用截图编辑了我的帖子:。。。不过,我在调试过程中发现了一些东西:如果我将帧设置为0,0,那么用户可以与它后面的表交互,但不能与myPopUp交互。当帧为320568时,用户可以与myPopUp交互,但不能与它后面的表交互。@您可以在Xcode断点后键入以下命令来检查视图层次结构:po[self recursiveDescription]。它可以很方便地调试像这样的视图问题。啊,这样做了。谢谢!啊,就这样。谢谢!