UIScrollView 类型访问 UIWebView
Posted
技术标签:
【中文标题】UIScrollView 类型访问 UIWebView【英文标题】:UIScrollView type access to UIWebView 【发布时间】:2012-04-26 00:38:37 【问题描述】:我想知道 UIWebView 的 contentOffset,和/或从中获取 didScroll 类型的通知。我错过了什么,还是那不可能。
我想要的是一个一半是信息面板,一半是 UIWebView 的 UI。当应用程序发现用户想要查看更多 Web 视图时,我想使用更小的信息面板和更大的 Web 视图来重新构建框架。当用户想要少看时,重新构图到一半。
问题是界面几乎没有按钮空间。如果 web 视图是滚动视图,我可以使用滚动动作来辨别意图。 (向下滚动表示放大,向上滚动表示缩小)。有什么想法可以通过网络视图来实现吗?
【问题讨论】:
【参考方案1】:UIWebView 由 UIScrollView 组成。
要访问 ScrollView,您可以使用以下两种方式之一:
UIWebView *aWebView; // Initialization code
UIScrollView *aScrollView;
for (UIView *aView in [aWebView subviews])
if ([aView isKindOfClass:[UIScrollView class]])
aScrollView = (UIScrollView *)aView;
或
aScrollView = [[aWebView subviews] objectAtIndex:0];
Option-1 是获取 UIScrollView 实例的一种更安全的方法...
和....
如果您正在为 ios5 构建应用程序,您可以调用..
aScrollView = aWebView.scrollView;
编辑
如果你仔细查看UIWebView,你应该注意到它符合UIScrollViewDelegate
【讨论】:
我怎么会错过 scrollView 属性?对于初学者,我会以这种方式愚弄:myWebView.scrollView.delegate = self;在包含VC。好像我在自找麻烦,但我们会看到的。谢谢!【参考方案2】:如果您的主要目的是在 UIWebView 之上提供自定义手势类型的操作,您可以尝试 UIGestureRecognizer。
(别忘了提供UIGestureRecognizerDelegate的gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer实现,让webview自带的手势识别器正常工作)
【讨论】:
以上是关于UIScrollView 类型访问 UIWebView的主要内容,如果未能解决你的问题,请参考以下文章
如何访问 UIScrollView 的特定子视图(UIWebView)并将一行 Java 传递给它