在 iOS 14 上,按钮不会通过触摸到集合视图单元格
Posted
技术标签:
【中文标题】在 iOS 14 上,按钮不会通过触摸到集合视图单元格【英文标题】:Button doesn’t pass through touches to collection view cell on iOS 14 【发布时间】:2021-01-25 15:45:59 【问题描述】:我注意到一些奇怪的行为。
我在其contentView
中获得了CollectionViewCell
和UIButton。
我实现了contextMenuConfigurationForItemAt
方法,它在ios 13上运行良好。但是当我尝试在iOS 14上测试它时,按钮并没有通过长按触摸并自行处理。
知道如何解决它,为什么会这样?
请注意,我不希望按钮的 hitTest
或 pointInside
方法中包含复杂的逻辑。
【问题讨论】:
【参考方案1】:“我不希望按钮的 hitTest 或 pointInside 方法中有复杂的逻辑” - 我希望我可以包含笑的表情符号。我强烈建议使用 hitTest(:)
和 pointInside(:)
方法来直接控制按钮按下的执行位置 - 特别是因为 iOS 版本可能会发生变化,例如你遇到的问题 - 或者如果你最终改变了你的用户界面。
例如:
hitTest(:)
-- 返回包含指定点的视图层次结构(包括其自身)中接收器的最远后代。
因此,如果您在按钮后面添加一些东西,那么该按钮将不再是被点击的项目。因此,您应该通过实施相关方法来认真控制这一点。
【讨论】:
我的意思是,如果我这样做,我将无法在按钮上实现上下文菜单。但是,如果我在我的应用程序中使用那个自定义按钮,有时它应该响应 kn 长按触摸。 感谢您的回答!但是你知道新的ios版本有什么变化吗?我找不到任何关于它的信息,它令人困惑( 我不知道——一般来说,像这样的小事故经常发生。作为 3rd 方开发者,我们唯一能做的就是尝试保证我们的结果;例如,使用上述方法。 您可以添加长按和手势,以及从不同视图控制器作为输入的动作 - 以及根据需要删除手势以上是关于在 iOS 14 上,按钮不会通过触摸到集合视图单元格的主要内容,如果未能解决你的问题,请参考以下文章