以一种奇怪的方式触地射击
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。这对我在模拟器和手机上都有效。
【讨论】:
以上是关于以一种奇怪的方式触地射击的主要内容,如果未能解决你的问题,请参考以下文章