У меня есть подкласс UIScrollView, в котором мне нужно внутренне реагировать на поведение прокрутки. Тем не менее, viewcontroller все равно должен будет прослушивать прокручиваемые обратные вызовы делегатов, поэтому я не могу напрямую украсть делегат в моем компоненте.
Есть ли способ сохранить свойство с именем «делегат» и просто прослушивать сообщения, отправленные вдоль него? , или как-то внутренне перехватить свойство делегата и переслать сообщения наружу после выполнения некоторого кода?
Да, но вам придется переопределить каждый метод делегата в документах . По сути, создайте второе свойство делегата и реализуйте протокол делегата. Когда вызываются методы делегата, позаботьтесь о своем бизнесе, а затем вызовите тот же метод для второго делегата из только что запущенного метода делегата. Например.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
// Do stuff here
if ([self.delegate2 respondsToSelector:@selector(scrollViewDidScroll:)]) {
[self.delegate2 scrollViewDidScroll:scrollView];
}
}