编辑:正如sunjr在这里指出的那样,这已得到修复,并将与下一个 Xcode/Swift 版本一起发布。
在使用 Swift 4 和 Swift 5 代码库将 Xcode 10.1 更新到 Xcode 10.2 后,我看到了很多奇怪的行为。
问题之一是在一个 ViewController 上不再调用 ScrollView 委托方法。简化的视图层次结构如下:
| ScrollView (ParentScrollView)
| -- Stack View
| ---- ScrollView (ChildScrollView)
| ---- ScrollView (ChildScrollView)
| ---- ScrollView (ChildScrollView)
它充当具有多个页面的视图:ParentScrollView
可以水平滚动,可以ChildScrollView
垂直滚动。
ViewController 是所有 Scrollview 的委托(在 Storyboard 中设置),但scrollViewDidEndDecelerating
在滚动任何视图(ParentScrollView 或 ChildScrollView)时不会调用委托方法(如 )。的基类ViewController
符合UIScrollViewDelegate
.
我曾尝试在代码中设置代表,除此之外我不知道我可能做错了什么。转换没有更改类中的任何代码,但在更新之前一切正常。我在Swift 5 Release Notes中也找不到对手势、代表或 ScrollViews 的一般更改。
这似乎是 Swift 5 编译器的一个错误。此外,有时它确实有效,有时则无效——所有这些都无需更改任何代码或项目设置。
为什么这不再起作用?有没有其他人经历过类似的行为?