我有一个包含UISegmentedControl的UIScrollView。这个想法是,用户可以来回滚动分段控件以查看落在设备屏幕可见区域之外的选项。用户还可以点击部分可见的选择,它将滚动到视图的中心。所有这些在iOS 13之前都可以正常工作。尽管滚动视图确实以编程方式移动,但滚动视图不会通过触摸移动,即,点击部分被遮盖的选项会将其滚动到屏幕中间。
调试器输出显示contentSize已设置并且大于滚动视图的框架:
<UIScrollView: 0x7f93ba0d2600; frame = (0 0; 375 30); clipsToBounds = YES; autoresize = W+BM; gestureRecognizers = <NSArray: 0x600002f90360>; layer = <CALayer: 0x6000020fb880>; contentOffset: {188, 0}; contentSize: {1125, 30}; adjustedContentInset: {0, -187.5, 0, 187.5}>
我确实对滚动视图进行了子类化,并通过重写touchsShouldBegin确认了它正在接收触摸。是否知道可能导致此行为的iOS 13更改?