iOS separa los delegates de scrollView y collectionView en files individuales

Tengo una UICollectionView y quiero poder realizar un comportamiento personalizado cuando el usuario se desplaza al implementar los methods delegates de scrollView. ¿Es posible tener dos objects separados que actúen como el delegado de la colecciónView y el delegado de la vista de desplazamiento cuando se trabaja con una colecciónView?

No puede tener delegates por separado. UICollectionView es una subclass de UIScrollView y anula su propiedad de delegate para cambiar su tipo a UICollectionViewDelegate (que es un subtipo de UIScrollViewDelegate ). Por lo tanto, solo puede asignar un delegado a una vista de colección, y puede implementar cualquier combinación de methods UICollectionViewDelegate y methods UIScrollViewDelegate .

Sin embargo, puede reenviar los methods UIScrollViewDelegate a otro object sin mucha dificultad. Así es como lo harías en Swift; sería muy similar en Objective-C (ya que todo esto se hace utilizando el time de ejecución Objective-C):

 import UIKit import ObjectiveC class ViewController: UICollectionViewController { let scrollViewDelegate = MyScrollViewDelegate() override func respondsToSelector(aSelector: Selector) -> Bool { if protocol_getMethodDescription(UIScrollViewDelegate.self, aSelector, false, true).types != nil || protocol_getMethodDescription(UIScrollViewDelegate.self, aSelector, true, true).types != nil { return scrollViewDelegate.respondsToSelector(aSelector) } else { return super.respondsToSelector(aSelector) } } override func forwardingTargetForSelector(aSelector: Selector) -> AnyObject? { if protocol_getMethodDescription(UIScrollViewDelegate.self, aSelector, false, true).types != nil || protocol_getMethodDescription(UIScrollViewDelegate.self, aSelector, true, true).types != nil { return scrollViewDelegate } else { return nil } } 

Tenga en count que MyScrollViewDelegate probablemente tenga que ser una subclass de NSObject para que esto funcione.

Si te entiendo correctamente, solo necesitas tu controller de vista en la subclass UICollectionViewController o UICollectionViewDelegate. A continuación, puede acceder a los methods de delegado de scrollView ya que son henetworkingados por la colección View