gpt4 book ai didi

xcode - UITableView 变得无响应

转载 作者:行者123 更新时间:2023-12-01 08:28:52 25 4
gpt4 key购买 nike

UITableViewCell becomes unresponsive这是一个非常不同的问题,有着非常不同的解决方案。

我的 tableView 是 UIViewController 中的 subview ,最初工作正常,我可以选择表格中的各个行。 However, I have created my own popup when a row is selected (the popup is a UIView) that appears towards the bottom of the screen.作为这个弹出窗口,我还创建了另一个 UIView,它覆盖了弹出窗口后面的屏幕,它使背景变暗。发生的第三件事是我创建了一个 UITapGestureRecogniser 来跟踪用户的点击,如果他们在 UIView 之外点击,那么两个 UIView 和 TapGestureRecogniser 将被删除并调用 deselectRowAtIndex... 方法。

但是,此时我无法使用 tableView,因为我希望能够在 tableView 中选择不同的字符串并再次出现弹出窗口(弹出窗口最终将包含使用户能够移动到不同的 viewControllers)。

我尝试重新加载数据,删除 tableview 并替换它,编辑 didSelectRowAtIndex,删除 deselectRowAtIndex 方法,但是我尝试的任何方法似乎都不起作用,而且我在 stackoverflow 上找不到任何东西,因为我的问题似乎很具体的(尽管如果有什么我很抱歉)。

我将添加我的代码的一些部分,但是,我不确定问题出在哪里,我可能没有复制正确的部分。

移除开销是来自 tapGesture 的选择器方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{


if(_popOverView == nil)
{
_popOverView = [[UIView alloc]initWithFrame:CGRectMake(20, 200, 280, 150)];

_popOverView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"wood.jpeg"]];
}
if(_mask == nil)
{
_mask = [[UIView alloc] initWithFrame:self.view.frame];
[_mask setBackgroundColor:[UIColor colorWithWhite:0.0 alpha:0.78]];
}

if (_tapDetector == nil)
{
_tapDetector= [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(removeOverHead:)];
}


[self.view addSubview:_mask];
[self.view addSubview:_popOverView];
[self.view addGestureRecognizer:_tapDetector];


}



-(void) removeOverHead:(UITapGestureRecognizer*) sender
{

CGPoint locationOfTap = [_tapDetector locationInView:self.view];


if (locationOfTap.y < (200 + 150) && locationOfTap.y > 200 && locationOfTap.x > 20 && locationOfTap.x < (20 + 280) ) {


NSLog(@"%f,%f",[_tapDetector locationInView:self.view].x,[_tapDetector locationInView:self.view].y);

}

else
{

[_mask removeFromSuperview];
[_popOverView removeFromSuperview];
[_tapDetector removeTarget:self action:@selector(removeOverHead:)];



/*this idea doesn't work :(
[self.tableView removeFromSuperview];
[self.view addSubview:_tableView];*/



}
}

我真的希望答案就在这里,而且非常简单,提前感谢您花时间阅读本文。

最佳答案

解决了!抱歉浪费您的时间。这是 gestureRecogniser 的错误删除方法。我换了

[_tapDetector removeTarget:self action:@selector(removeOverHead:)] 

[self.view removeGestureRecognizer:_tapDetector] 

因为 UIGestureRecogniser 挥之不去并阻碍了 tableView!!

关于xcode - UITableView 变得无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12878109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com