奇怪的行为 - 选择行触摸没有响应UITableViewCell

Esh*_*nya 3 iphone uitableview didselectrowatindexpath

我有一个非常奇怪的问题,我不知道它是否对细胞的正常行为很尴尬,似乎就是这样!因此我将它放弃给一个可以回答的人,如果有任何愚蠢的事情道歉在问这个问题时.通常情况下,当我们触摸一个表格视图单元格时,它会导航到一个视图控制器/一个被编码的控制器.现在这里有什么奇怪的是它没有响应选择或触摸.我检查了是否允许在IB中选择编辑时进行选择.我选择了它,现在这里的扭曲是当我触摸表格视图单元格没有响应时,而是当我水平滑动/当我长按单元格时,它正在导航,真的对这种奇怪的行为感到惊讶!我不明白为什么我需要刷它以在表视图工作中选择单元格.这也发生在表视图下面的按钮!

我已经搜索了与我的情况类似的问题,但我发现只有一个问题,建议检查这个方法,

-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

但我根本没有实现该方法,我实际上是一个带有几个项目的标签栏,其中我有一个名为AddController的控制器,用于访问控制器中声明的几个属性和字符串等.我将其子类化为如下:

@interface ViewController : AddController
Run Code Online (Sandbox Code Playgroud)

现在因为它在我看到的问题中指定,即我给出的链接,检查你是否在子类控制器页面中复制相同的代码,我谈到了子类化和我做了什么,希望每个人都理解它!

任何人都可以指导我如何摆脱这个问题,并使表视图单元格响应正常触摸,任何帮助非常感谢!

在此先感谢所有:)

hac*_*ack 5

做了一些研究之后,我很确定它是UITapGestureRecognizer在tableView上引起你的问题.如果你像我一样在单元格中使用文本字段并使用UITapGestureRecognizer关闭键盘,这是我的解决方案:

在您实施的视图中 UITextFieldDelegate

(在我的例子中,我有一个UITableViewCell名为TextFieldCell 的自定义),

声明UITapGestureRecognizer一个属性:

@interface TextFieldCell : UITableViewCell <UITextFieldDelegate>
{
    UITextField *theTextField;
    UITapGestureRecognizer *gestureRecognizer;
}
@property (nonatomic,retain) UITextField *theTextField;
@property (nonatomic,retain) UITapGestureRecognizer *gestureRecognizer; 
Run Code Online (Sandbox Code Playgroud)

并在您的视图中初始化它:

self.gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(closeKeyboard:)];
Run Code Online (Sandbox Code Playgroud)

在该- (void)textFieldDidBeginEditing:(UITextField *)textField方法中,用于superView向上移动到tableView并调用addGestureRecognizer:

[self.superview.superview addGestureRecognizer:gestureRecognizer];
Run Code Online (Sandbox Code Playgroud)

而在- (void)textFieldDidEndEditing:(UITextField *)textField,只需删除手势识别器:

[self.superview.superview removeGestureRecognizer:gestureRecognizer];
Run Code Online (Sandbox Code Playgroud)

这将完全解决问题.