UIScrollView子类和自定义委托:检测子类和委托上的滚动事件

时间:2012-05-27 12:56:46

标签: iphone ios5 delegates uiscrollview uiscrollviewdelegate

我正在创建一个UIScrollView子类。在这个子类上,我需要检测滚动事件,但我还想在代理上启用滚动事件的检测。此外,此UIScrollView子类还需要一个自定义委托。

// CustomScrollView.h
#import <UIKit/UIKit.h>
#import "CustomScrollViewDelegate.h"

@interface CustomScrollView : UIScrollView <UIScrollViewDelegate> {
    ...
}

@property (nonatomic, assign) id <DAGridViewDelegate> delegate;

...

@end

// CustomScrollView.m
#import "DAGridView.h"

@implementation DAGridView

@synthesize delegate;

- (id)init {
    self = [super init];
    if (self) {
        ...
    }
    return self;
}

...

@end

// CustomScrollViewDelegate.h

@class CustomScrollViewDelegate

@protocol CustomScrollViewDelegate <NSObject, CustomScrollViewDelegate>

...

@end

感谢您的帮助!!

如果您需要更多信息,请发表评论!!

1 个答案:

答案 0 :(得分:0)

好吧,你可以简单地在init中说明

self.delegate = self; // to have your custom scroll view as its own delegate

并将您正在实现的新协议的自定义委托重命名为CustomDelegate以避免出现问题

然后你必须遍历滚动视图调用的每个方法,并在每个方法中添加类似

的内容
[customDelegate ovveriddenScrollviewDelegateMethod];

您在班级中实施的是customDelgate,

<UIScrollViewDelegate, CustomScrollViewDelegate>

并实施一切。