Как получить доступ к определенному подпредставлению (UIWebView) UIScrollView и передать ему строку Java - PullRequest
1 голос
/ 04 июня 2011

Я создаю 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);

Вот код, который я хотел бы использоватьДля адресации UIWebviews внутри UIScrollview (scrollView1):

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

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

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

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

1 Ответ

0 голосов
/ 24 июня 2011

Это должно работать

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

Вы можете сохранить тег UIWebView, который в настоящее время представлен в члене вашего класса контроллера представления.

...