【发布时间】:2020-04-26 18:25:22
【问题描述】:
我有一个UIViewController,其中有UITableView 和UICollectionView。我想在滚动UICollectionView 时执行某些任务。
我已经扩展了UIScrollViewDelegate 并在
func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView)
但是当UITableView 和UICollectionView 都被滚动时调用这个方法。我如何区分这两种观点?我试过了
func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
if let cv = scrollView as? UICollectionView {
}
}
但它不起作用。我试过po scrollView,输出是<uninitialized>。
【问题讨论】:
-
您的尝试现在效果如何?您是否将
delegate设置为self? -
delegateUICollectionView?我没有专门设置该委托,但在UITableView和UICollectionView上都调用了委托方法 -
这怎么可能?你怎么知道委托方法被调用了?如果他们被调用,你怎么知道你的
if let语句不起作用? -
我在
delegate方法中设置了断点,如果我删除if语句,里面的代码会在UITableView和UICollectionView滚动时执行。 -
您所要做的就是使用具有快速枚举的
isKind协议。
标签: ios swift xcode uiscrollview uiscrollviewdelegate