2010-07-27 11 views
8

Tengo vista web.Cómo agregar una subvista a una vista web para que la subvista se desplace junto con la vista web?

Ahora quiero agregar una subvista. Lo agregué usando el método de adición de la vista.

Se agregó la vista, pero no se desplazó con la vista web.

Quiero que mi subvista se dispare con la vista web.

¿Cómo puedo hacer eso?

Atentamente, Akshay.

+0

Es extraño agregar una subvista a una vista web. Que estás tratando de hacer ? –

+0

Aquí está la solución http://stackoverflow.com/q/43533068/6521116 –

Respuesta

0

Para hacer eso, necesitaría retocar con las partes internas de UIWebView y descubrir su jerarquía de vistas, para que pueda agregar la subvista dentro del juego.

Probablemente sea más fácil ajustar su HTML dentro de la vista, por lo que puede incluir algo similar a su vista personalizada (texto o imagen).

Más tarde puede interactuar con su "vista falsa" a través de Javascript.

+0

¿Es posible si tengo un objeto UIWebView? Tengo que trabajar con el objeto existente webView y no puedo crear uno nuevo mediante la subclasificación. –

17

sólo hay que añadir su subvista a la UIScrollView del UIWebView como este para tener su desplazamiento subvista con el contenido vistas web:

[webView.scrollView addSubview:youSubView]; 
+1

Para el registro, la propiedad 'scrollView' se agregó en iOS 5.0. –

+0

de hecho solo está disponible después de iOS 5.0, pero este es un truco fabuloso; Acabo de usarlo para permitir que mi spinner para cargar en un webView se aloje dentro de los límites de UIWebView. ¡Perfecto! –

+0

solo me puede ayudar a agregar hasta 126 subvista –

0

probar esto, que funcionará

[[[yourwebview subvistas] objectAtIndex: 0] addSubview: yoursubview];

0

Supongamos que quiere su uiview en una región con id. De película en el html. Compruebe mi post aquí.

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    self.wk.evaluateJavaScript("var rect = document.getElementById('movie').getBoundingClientRect();[rect.left, rect.top];") { 
     (result, error) -> Void in 
     print(result) 
     self.player.view.frame.origin.x = (result as! Array)[0] 
     self.player.view.frame.origin.y = (result as! Array)[1] 
    } 
} 
Cuestiones relacionadas