1

我正在创建一个UIScrollView并添加四个UIWebViews作为子视图。

我想做两件事:

  1. 在创建它时标记每个WebView,以便在UIScrollView后面解决它。
  2. 在特定时刻 ( scrollViewWillBeginDragging) 将 JavaScript 发送到UIWebView当前由UIScrollview.

我不知道如何标记子视图,也不知道如何解决它。所以我的两个问题是:

Q1。如何正确标记子视图(同时将其添加到 UISCrollView)?

Q2。如何将命令寻址到 UIScrollView 内的子视图?((最好的情况:当前显示的那个))

谢谢你的帮助!

也许问题通过查看实际代码来澄清:

这是我用来创建UIWebviews并将它们添加到UIScrollview(scrollView1)的代码:

- (void)viewDidLoad{

scrollView1.delegate = self;
scrollView1.pagingEnabled = YES;
scrollView1.delaysContentTouches = NO;

NSInteger numberOfViews = 4;

for (int i = 0; i < numberOfViews; i++) {

CGFloat yOrigin = i * self.view.frame.size.width;
UIWebView *WebView1 = [[UIWebView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];

NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"page_%d", i] ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[WebView1 loadRequest:request];


//HERE I'M TRYING TO TAG THE VIEW

WebView1.tag = i;

[scrollView1 addSubview:awesomeView];
[WebView1 release];

}
scrollView1.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height);

这是我想用来解决(scrollView1)UIWebviews内部的代码:UIScrollview

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView1{

NSString *JavaScriptCommand = [NSString stringWithFormat:@"player.pause();"];

<strong>//HERE I'M TRYING TO ACCESS THE TAGGED VIEW</strong>

[scrollView1.????? stringByEvaluatingJavaScriptFromString:JavaScriptCommand];
}
4

1 回答 1

0

这应该工作

int i = // the tag of the webview you want to address   
[[scrollView1 viewWithTag:i] stringByEvaluatingJavaScriptFromString:JavaScriptCommand];

您可以存储当前呈现在视图控制器类成员中的 UIWebView 的标记。

于 2011-06-24T15:21:36.963 回答