【发布时间】:2020-01-30 07:05:49
【问题描述】:
TLDR:如何在 iOS 13 上移除 UISegmentedControl 的滑动/平移手势识别器?
嗨,在 iOS 13 上,UISegmentedControl 发生了很多变化。大多数情况下,这些变化是基于外观的。但是还有另一个功能更改正在搞乱我的应用程序。
在 iOS 13 上,使用 UISegmentedControls,除了触摸您要选择的片段之外,您现在还可以滑动/平移来更改所选片段。
在我的应用程序中,我基本上在滚动视图中嵌入了 UISegmentedControl。 UISegmentedControl 太长,屏幕无法显示所有值,所以我创建了一个滚动视图,它是屏幕的宽度,其内容宽度是 UISegmentedControl 的长度,并且要访问不可见的段,用户滑动“滚动视图”和分段控制幻灯片。
这在 iOS 13 之前完美运行,现在,用户在拖动分段控件时无法滚动水平背景滚动视图,因为我假设滚动视图滚动识别器被新的滚动视图滑动以选择手势覆盖。
我什至尝试以递归方式删除 UISegmentedControl 及其所有子视图的所有手势识别器,并且滑动以更改选择手势仍然有效......我被卡住了。
谢谢,如果问题不清楚,请告诉我
【问题讨论】:
-
我根本没有研究过这个,但由于你没有运气寻找手势,也许没有使用它,它是使用来自
UIResponder的常用touchesXXX方法实现的。您创建子类UISegmentedControl并尝试覆盖touchesMoved。看看这是否能让你有所收获。
标签: ios swift uisegmentedcontrol ios13