gpt4 book ai didi

iOS 13 分段控制 : Remove swipe gesture to select segment

转载 作者:行者123 更新时间:2023-12-01 16:21:43 25 4
gpt4 key购买 nike

TLDR:如何在 iOS 13 上删除 UISegmentedControl 的滑动/平移手势识别器?

嗨,在 iOS 13 上,UISegmentedControl 发生了很多变化。大多数情况下,这些变化是基于外观的。但是还有另一个功能更改正在搞乱我的应用程序。

在 iOS 13 上,使用 UISegmentedControls,您现在可以滑动/平移来更改选定的片段,除了触摸您想要选择的片段。

在我的应用程序中,我基本上在 ScrollView 中嵌入了 UISegmentedControl。 UISegmentedControl 太长,屏幕无法显示所有值,所以我创建了一个 ScrollView ,它是屏幕的宽度,其内容宽度是 UISegmentedControl 的长度,并且要访问不可见的段,用户滑动“ ScrollView ”和分段控制幻灯片。

这在 iOS 13 之前完美运行,现在,用户在拖动分段控件时无法滚动水平背景 ScrollView ,因为我假设 ScrollView 滚动识别器被新的 ScrollView 滑动选择手势覆盖。

我什至尝试以递归方式删除 UISegmentedControl 及其所有 subview 的所有手势识别器,并且滑动以更改选择手势仍然有效......我被卡住了。

谢谢,如果问题不清楚,请告诉我

最佳答案

我有一个类似的设置(UISegmentedControl 内的 UIScrollView bc 它太长了,客户不想压缩内容以适应)。这对我有用(基于 Xcode 11.1 构建):

class NoSwipeSegmentedControl: UISegmentedControl {

override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
}

然后设置我的类 UISegmentedControl到那个。在我的应用程序中,这只会阻止 UISegmentedControl 上的滑动选择手势嵌入在 UIScrollView 中的对象.如果不在 UIScrollView 中没有任何不同的行为。这是有道理的,因为 gestureRecognizerShouldBegin()返回 true默认情况下。那么为什么这允许 UIScrollView优先考虑滑动手势,我不知道。但希望它有所帮助。

关于iOS 13 分段控制 : Remove swipe gesture to select segment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58228136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com