Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 触摸不响应UITableView_Ios_Objective C_Uitableview - Fatal编程技术网

Ios 触摸不响应UITableView

Ios 触摸不响应UITableView,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我有一个带有UINavigationViewController的故事板,其中包含UITableView和UIToolBar。TableView可以很好地填充,但当我触摸TableViewCell时没有响应。它会启动,但选择不会持久,并且不会调用处理程序函数。当我在单元格上进行某种滑动时,它有时会记录触摸事件并调用处理程序。看起来好像touchEvents未被识别或阻止。这是我的设置: NavigationView的视图组件配置 UITableView配置 值得注意的是,如果我用两个手指触

我有一个带有UINavigationViewController的故事板,其中包含UITableView和UIToolBar。TableView可以很好地填充,但当我触摸TableViewCell时没有响应。它会启动,但选择不会持久,并且不会调用处理程序函数。当我在单元格上进行某种滑动时,它有时会记录触摸事件并调用处理程序。看起来好像touchEvents未被识别或阻止。这是我的设置:

NavigationView的视图组件配置

UITableView配置

值得注意的是,如果我用两个手指触摸电池,它会选择电池。。。!因此,在这种情况下会调用此处理程序:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.selectedWerkzaamheden = self.model.selectedWerkorder.werkbonWerkzaamheden;
    self.selectedWerkzaamheden = [NSMutableArray arrayWithArray:self.model.selectedWerkorder.werkbonWerkzaamheden];

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                               initWithTarget:self
                               action:@selector(dismissKeyboard)];

    [self.view addGestureRecognizer:tap];
    [self.myTableView reloadData];
}

...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    self.selectedWerkzaamheidIndex = indexPath.row;
    self.selectedWerkzaamheid = self.selectedWerkzaamheden[self.selectedWerkzaamheidIndex];
    self.trashBtn.enabled = TRUE;
}
声明文件:

#import "LmxViewController.h"
#import "LmxDropDownDataVO.h"

@interface LmxWerkzaamheidViewController : LmxViewController <UITableViewDataSource>

@property NSString *faultTitle;
@property NSString *faultMessage;
@property IBOutlet UIButton *selectWerkzaamheidBtn;
@property LmxDropDownDataVO *selectedWerkzaamheid;
@property NSInteger selectedWerkzaamheidIndex;
@property NSMutableArray *selectedWerkzaamheden;
@property IBOutlet UIBarButtonItem *submitBtn;
@property IBOutlet UITableView *werkzaamheidTableView;
@property (strong, nonatomic) IBOutlet UIBarButtonItem *trashBtn;

- (IBAction)selectWerkzaamheid:(id)sender;
- (IBAction)saveWerkzaamheidWithWerkorder:(id)sender;
- (IBAction)cancel:(id)sender;
@end

问题是我确实在viewDidLoad类中留下了一段代码,它掩盖了table view单元格的触摸事件

 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                   initWithTarget:self
                                   action:@selector(dismissKeyboard)];

    [self.view addGestureRecognizer:tap];
显然,这会阻止触摸事件到达表视图代理功能:

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

感谢您的贡献。

问题是我确实在viewDidLoad类中留下了一段代码,它模糊了table view单元格的触摸事件

 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                   initWithTarget:self
                                   action:@selector(dismissKeyboard)];

    [self.view addGestureRecognizer:tap];
显然,这会阻止触摸事件到达表视图代理功能:

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

感谢您的贡献。

您能告诉我们您希望调用的代码是什么吗?为什么不使用didselectcell委托方法调用selectWerkzaamheid而不是将其作为ibaction@longbow对不起,我复制/粘贴了错误的函数。在上面你看到了正确的功能。你在这里添加了任何UIgestureRecognitor吗?或者类似的东西?cell的子视图是什么?有卷轴之类的东西吗,。。。?试着创建一个空单元格,并检查它是否有效。您能否显示您期望调用的代码。为什么不使用didselectcell委托方法调用selectWerkzaamheid,而不是将其设置为ibaction@longbow对不起,我复制/粘贴了错误的函数。在上面你看到了正确的功能。你在这里添加了任何UIgestureRecognitor吗?或者类似的东西?cell的子视图是什么?有卷轴之类的东西吗,。。。?尝试创建一个空单元格并检查它是否有效