UIWebViewDelegate協議未聲明方法scrollViewDidScroll:
。因此,這就是爲什麼你會得到錯誤的訪問錯誤。
我建議你的子類UIWebView
,而不是試圖創建一個類別(是的,文檔推薦反對子類...只是不覆蓋任何方法,它是安全的)。
在你的子類,你可以創建一個新的協議或簡單地覆蓋delegate
屬性還要求它符合`UIScrollViewDelegate(後如下圖所示):
在示例:
// MyWebView.h
#import <UIKit/UIKit.h>
@interface MyWebView : UIWebView
@property (nonatomic, assign) id<UIWebViewDelegate, UIScrollViewDelegate> delegate;
@end
// MyWebView.m
#import "MyWebView.h"
@implementation MyWebView
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
/* As scrollViewDidScroll: is optional, you should check if the super class
responds to this method (it doesn't appear to now, but this may change in future) */
if ([[self superclass] instancesRespondToSelector:@selector(scrollViewDidScroll:)])
{
[super scrollViewDidScroll:scrollView];
}
/* Likewise, you should check if your own delegate responds to this selector */
if ([self.delegate respondsToSelector:@selector(scrollViewDidScroll:)])
{
[self.delegate scrollViewDidScroll:scrollView];
}
}
@end
任何提示如何做到這一點是歡迎:) – Segev 2013-03-22 00:07:19
請參閱編輯的答案進一步澄清。讓我知道你是否仍然需要幫助。 :D – 2013-03-22 00:16:11
感謝您的幫助。當我試圖滾動子類'UIWebView'我得到' - [MyWebView scrollViewDidScroll:]:無法識別的選擇發送到實例0x819cf50' – Segev 2013-03-22 01:02:14