所以我只需要一個帶有UIWebView的標準UIViewController來顯示pdf。對於應用程序的功能,我需要能夠向一個UIWebView的嵌套UIScrollView的事件,如scrollViewWillBeginDragging,scrollViewDidScroll等應對如何從標準UIViewController中調用UIWebView的UIScrollView委託方法?
我可以訪問了滾動的唯一方法是(這似乎是一個黑客)去並通過子視圖數組獲得它:
for (id subview in webView.subviews){
if ([[subview class] isSubclassOfClass: [UIScrollView class]]) {
UIScrollView * s = (UIScrollView*)subview;
s.delegate = self;
s.tag = 1;
scrollView = s;
}
}
,但似乎推出更多的問題比它的價值,因爲我失去了原生的UIScrollView類的東西放大。
所以總結起來就是我需要:
什麼是設置我的UIViewController類的的UIScrollView的委託的UIWebView內的最佳方式?有沒有什麼我需要做的是繼承我自己的UIWebView,以便它以某種方式處理UIWebView中構建的事件,然後以某種方式將它傳遞給UIViewController?無論如何,這種過渡的事情如何工作?
請指教!
謝謝!
感謝您的回答!我試了一下,它中途工作。我確信當我實現全部12個委託方法時,我面臨的錯誤可以被消除。也許一個愚蠢的問題,但你怎麼知道所有的方法返回?我的意思是特別針對那些你並未明確需要重寫的人。我想要全部實現它們,但發現實際實現說明中缺少文檔(如在方法簽名實現之後)。謝謝! –
兩個UIScrollViewDelegate方法返回一個值。對於這些情況,只要返回他們返回的內容,例如 - (UIScrollView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {//做你的東西返回[originalDelegate viewForZoomingInScrollView:originalDelegate]; }你在問什麼? – Obliquely
是的,你提到我應該實現所有12個委託方法,但是如果只有兩個方法返回任何東西,那麼它自己實現所有方法有什麼好處?我想這就是我沒有得到的...... :) –