以一种奇怪的方式触地射击

Posted

技术标签:

【中文标题】以一种奇怪的方式触地射击【英文标题】:Touch Down firing in a weird way 【发布时间】:2014-10-25 19:34:14 【问题描述】:

我正在向 uitextfield 添加一个触地动作(实际上它是一个子类,但我认为这可能并不重要)。我创建了一个简单的视图控制器并将这个文本框添加到其中,并将事件连接到 println("Hello")。

当我快速点击该项目时(无论是在模拟器中还是在我的手机上),它都能完美运行并打招呼!

然后我创建了一个 UITableViewController 子类,并在其中一个静态单元格中添加了相同的文本框。

在这种情况下,当我快速点击文本框时,什么也没有发生!当我实际按住鼠标或手指大约 1/2 秒时,它就起作用了。但如果我快速点击它就不会。

这与之前的文本框不同,无论我多快点击它,它总是能完美运行。

不同的事件被拦截或类似的事情是否存在一些问题? 我什至向表格单元格和文本框添加了一个轻击手势识别器,但除非我按住它,否则它们都不起作用(除非我单击文本框并进入单元格,否则表格单元格操作甚至不会触发正确的,当然)。

非常感谢,这很奇怪。

【问题讨论】:

【参考方案1】:

UIButton not showing highlight on tap in ios7

iOS - Delayed "Touch Down" event for UIButton in UITableViewCell

有很多关于这方面的信息。显然,通过上述一些方法可以避免 uitableviewcells 的延迟。

一旦我开始研究它,我会发布适合我的解决方案。谢谢!

编辑 OP 已交付!! (哈哈对不起)

在 IOS8 中,这个想法是表格单元格不再具有基本上会延迟触摸的 uiscrollview,因此您可以做的是在您的页面中加载类似这样的内容:

for subview in self.tableView.subviews as [UIView]
    
        if subview is UIScrollView
        
            let scroll = subview as UIScrollView
            scroll.delaysContentTouches = false
            break
        
    

看看我们是如何迭代 self.tableview 的子视图的,并且每当我们点击滚动视图时,将 delaysContentTouches 设置为 false。这对我在模拟器和手机上都有效。

【讨论】:

以上是关于以一种奇怪的方式触地射击的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 Racket 中以一种奇怪的方式定义 foldl?

Android:裁剪位图(以一种奇怪的方式)

QStandardItem 以一种奇怪的方式插入行

为啥我的文本字符串以一种奇怪的方式换行? (HTML/CSS)

我有一个删除插入CTE以一种奇怪的方式失败

iOS Swift - Google Place API (Web) 以一种奇怪的格式返回 JSON