我有一个非常奇怪的问题,我不知道它是否对细胞的正常行为很尴尬,好像它是这样的!因此我将它放弃给可以回答的人,道歉如果在问这个问题时,任何事情都是愚蠢的。通常情况下,当我们触摸一个表格视图单元格时,会发生什么情况导航到一个视图控制器/一个被编码的控制器。现在这里奇怪的是它没有响应选择或触摸。检查是否允许在IB中选择编辑时选择。我选择了它,现在这里的扭曲是当我触摸一个表格视图单元格它没有响应时,而是当我水平滑动/当我长按单元格,它正在导航,真的对这种奇怪的行为感到惊讶!我不明白为什么我需要刷它以在表视图工作中选择单元格。这也发生在表视图下面的按钮! / p>
我搜索了与我的案例类似的问题,但我发现只有一个question建议检查此方法,
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
但是我根本没有实现那个方法,我实际上是一个带有几个项目的标签栏,我有一个名为AddController的控制器,用于访问控制器中声明的几个属性和字符串等。我是将其子类化如下:
@interface ViewController : AddController
现在因为它在我看到的问题中有说明,即。我给出的链接,检查你是否在子类控制器页面中复制相同的代码,我谈到了子类化和我做了什么,希望每个人都能理解它!
任何人都可以指导我如何摆脱这个问题,让表格查看单元格响应正常触摸,非常感谢任何帮助!
提前感谢所有人:)
答案 0 :(得分:5)
在做了一些研究之后,我很确定它是tableView上的UITapGestureRecognizer
导致了你的问题。如果你像我一样在单元格中使用文本字段并使用UITapGestureRecognizer
关闭键盘,这是我的解决方案:
在您实施UITextFieldDelegate
(在我的情况下,我有一个名为TextFieldCell的自定义UITableViewCell
,
将UITapGestureRecognizer
声明为属性:
@interface TextFieldCell : UITableViewCell <UITextFieldDelegate>
{
UITextField *theTextField;
UITapGestureRecognizer *gestureRecognizer;
}
@property (nonatomic,retain) UITextField *theTextField;
@property (nonatomic,retain) UITapGestureRecognizer *gestureRecognizer;
并在您的视图中对其进行初始化:
self.gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(closeKeyboard:)];
在- (void)textFieldDidBeginEditing:(UITextField *)textField
方法中,使用superView
向上移动到tableView并调用addGestureRecognizer
:
[self.superview.superview addGestureRecognizer:gestureRecognizer];
在- (void)textFieldDidEndEditing:(UITextField *)textField
中,只需删除手势识别器:
[self.superview.superview removeGestureRecognizer:gestureRecognizer];
这将完全解决问题。
答案 1 :(得分:2)
您是否在tableView上使用了UITapGestureRecognizer?我遇到了与你今天完全相同的问题,然后我发现手势识别器模糊了我通过点击选择行的意图。当我删除它时,tableView恢复正常。
希望这有帮助。
答案 2 :(得分:0)
我遇到了同样的问题,并通过在表格视图属性中勾选“滚动已启用”来解决它。
我的表格视图不需要滚动,因此它不会以任何其他方式影响应用程序,除非现在我在刷卡手势后没有得到第一个无响应的点击。