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)
现在因为它在我看到的问题中指定,即我给出的链接,检查你是否在子类控制器页面中复制相同的代码,我谈到了子类化和我做了什么,希望每个人都理解它!
任何人都可以指导我如何摆脱这个问题,并使表视图单元格响应正常触摸,任何帮助非常感谢!
在此先感谢所有:)
做了一些研究之后,我很确定它是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)
这将完全解决问题.
归档时间: |
|
查看次数: |
2006 次 |
最近记录: |