delaysContentTouches 仅针对特定元素而不进行子类化?

Posted

技术标签:

【中文标题】delaysContentTouches 仅针对特定元素而不进行子类化?【英文标题】:delaysContentTouches only on specific elements without subclassing? 【发布时间】:2011-11-22 22:14:40 【问题描述】:

我有一个简单的问题。在我的应用程序中,我在UIScrollView 中有一些用于导航的按钮,这些按钮会随着内容滚动。这样,当用户输入文本字段并弹出键盘时,按钮将滚动离开以获得额外空间。但是,当我点击它们时,这些按钮不会立即突出显示。我知道我可以通过将delaysContentTouches 设置为NO 来消除这个问题,但这使得滚动几乎不可能,因为视图中的所有UITextFields 和按钮也会立即突出显示,从而窃取滚动。

我找到了一种不通过UIScrollView 子类延迟按钮的方法,所以这是一个选项,但我想知道是否还有其他方法。当只修复一件小事时,我通常讨厌子类化。

【问题讨论】:

【参考方案1】:

如果delaysContentTouches 设置为YES,UIScrollView 的touchesShouldBegin:withEvent:inContentView: 方法将被子类覆盖。所以当子类化完全没问题时就是这种情况。

【讨论】:

我知道它“可以”,但无论如何我有点讨厌子类化。无论如何,我可能最终会使用这种方法,但我问了这个问题,看看他们是否是另一种解决方案。 无论好坏,这就是这样做的方法。学会喜欢子类化,同时提交一个错误,请求能够在委托中执行此操作。你可以设计你的子类来调用委托!

以上是关于delaysContentTouches 仅针对特定元素而不进行子类化?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 UIButton.showsTouchWhenHighlighted 不需要将 UIScrollView.delaysContentTouches 设置为 false?

将 Android Studio 配置为仅显示特定级别的 API

iOS 7:在 UITableView / delaysContentTouches 中拖动似乎不起作用

UIScrollView之isTracking delaysContentTouches canCancelContentTouches

仅针对特定用户的 SSH 身份验证绕过密码身份验证

如何在不将 UIScrollView 的 delaysContentTouches 设置为 NO 的情况下快速点击它时使 UIScrollView 中的按钮突出显示