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
如何在不将 UIScrollView 的 delaysContentTouches 设置为 NO 的情况下快速点击它时使 UIScrollView 中的按钮突出显示