Вот еще одна потенциальная проблема с тем, что вы пытаетесь сделать ...
Допустим, у вас есть два экземпляра UIScrollView и один объект делегата. В объекте делегата вы переопределяете scrollViewDidScroll (UIScrollView *): метод протокола UIScrollViewDelegate.
Внутри метода вы хотите получить доступ к значению свойства contentOffset обоих представлений прокрутки, потому что, возможно, у вас есть два смежных представления коллекций, и вы пытаетесь получить индексный путь элемента в центре представление коллекции, чтобы получить значения свойств, связанных с этими двумя элементами (например, UIDatePicker).
В таком случае, чем вы отличаетесь между видами прокрутки? Свойство scrollView относится только к одному представлению прокрутки; но, даже если это относится к обоим, как вы получаете значение их соответствующих свойств contentOffset?
Теперь вы можете сказать: «Я могу создать IBOutlet для обоих и использовать их назначенные ссылки вместо свойства scrollView в методе делегата, такого как self.collectionViewFirst.contentOffset и self.collectionViewSecond.contentOffset, и игнорировать Свойство scrollView метода делегата.
Проблема заключается в следующем: это свойство не сохраняется. Он доступен только при вызове метода делегата. Зачем? Потому что есть только один объект делегата и только одно свойство contentOffset. При прокрутке другого вида прокрутки значение свойства contentOffset изменится и не будет отражать смещение содержимого любого другого вида прокрутки, кроме последнего прокручиваемого.
Это плохая практика - делать то, что вы пытаетесь сделать, даже если описанный мной случай (или случай, подобный этому) не относится к вашей ситуации. Помните: написание кода - это обмен кодами. Неверный код отправляет сообщение другим, что снижает вашу репутацию.