所以我只需要一个带有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个委托方法,但是如果只有两个方法返回任何东西,那么它自己实现所有方法有什么好处?我想这就是我没有得到的...... :) –