2011-11-01 21 views
7

En la UITableView principal para un RootViewController.Vista flotante sobre UITableView en RootViewController

¿Cómo puedo agregar una Vista sobre un TableView RootViewControllers, con su posición relativa a la pantalla y no a TableView, para que no se desplace con ella?

Nota: será una barra de progreso que muestra nuevos datos para el progreso de descarga de la tabla.

Respuesta

5

Sería de gran ayuda si usted envió su código, pero: usted está presumiblemente añadiendo el UITableView a su RootViewController con algo como esto:

[self.view addSubview:myUITableView]; 

acaba de añadir su vista flotante de la misma manera (es decir, agregarlo a su controlador de vista, no a su UITableView). Si lo agrega después de agregar la vista de tabla, ya estará "arriba" de la vista de tabla. De lo contrario puede llevar a la cima con algo como esto:

[self.view bringSubviewToFront:myOverlayView]; 

Su punto de vista de superposición debe subclase UIView, y debe establecer su propio backgroundColor a [UIColor clearColor] con el fin de hacerlo transparente. Para permitir que el usuario continúe interactuando con la vista de tabla (que presumiblemente quiere que suceda), en su subclase de superposición sobrescribe hitTest:withEvent: y devuelve la vista de tabla (en lugar de devolver self, que es el comportamiento predeterminado). Esto pasará todos los toques a la vista de tabla debajo.

+3

Puede configurar userinteractionenabled a no y esto pasa todos los eventos a la vista subyacente, no necesita anular hitTest – jrturton

+0

@jrturton: sí, eso es mucho más simple que anular hitTest. – MusiGenesis

+0

Como estoy en mi clase RootViewController tengo que escribir: '[self.parentViewController.view addSubview: self.myOverlayView];', pero todo funciona. –

Cuestiones relacionadas