你不想要一個包含2個代表的對象。你想讓你的customScrollView保留自己的UIScrollViewDelegate函數的責任。
爲了讓您的父VC對UIScrollView的委託方法做出響應,您還必須在customScrollView中創建一個自定義委託。
在調用UIScrollViewDelegate函數的同時,您還將調用您的自定義委託中的一個委託函數。這樣你的父VC就會在你想要的時候做出迴應。
它看起來有點像這樣。
CustomScrollView.h
@protocol CustomDelegate <NSObject>
//custom delegate methods
-(void)myCustomDelegateMethod;
@end
@interface CustomScrollView : UIScrollView <UIScrollViewDelegate>
{
id<CustomDelegate> delegate
//the rest of the stuff
CustomScrollView.m
-(void) viewForZoomingInScrollView
{
[self.delegate myCustomDelegateMethod];
//rest of viewForZoomingInScrollView code
ParentVC。^ h
@interface CustomScrollView : UIViewController <CustomDelegate>
{
//stuff
ParentVC.m
-(void)makeCustomScrollView
{
CustomScrollView *csv = [[CustomScrollView alloc] init];
csv.delegate = self;
//other stuff
}
-(void)myCustomDelegateMethod
{
//respond to viewForZoomingInScrollView
}
我希望這完全覆蓋你的問題。 祝你好運。
你爲什麼要這樣做?爲什麼你不能只將消息從你的customScrollView傳遞給你的VC(有第二個(自定義)委託)? –
也許這就是我需要做的,所以如果我在我的SV子類中實現了scrollViewDidZoom,那麼每當觸發它時我怎麼能發送一條消息給VC? @totumus maximus –
你將不得不在你的自定義視圖中創建一個自定義的委託(協議),並讓你的VC委託它。在你的scrollview委託被調用的那一刻,你也可以調用自定義委託中的一個自定義委託方法。這樣scrollview保持自己的責任,你的父視圖會對特定的滾動函數作出反應。我會把它解釋爲對的答案。 –