2010-11-01 19 views
7

Estoy buscando un tutorial o algunas ideas para hacer un controlador personalizado que se parece al de la aplicación de Twitter para iPad, me refiero a las páginas apiladas con un menú principal a la izquierda. ¡¡Gracias de antemano por cualquier ayuda!!UIScrollView como la aplicación de Twitter para iPad

+0

Esa es una tarea bastante intenso. Si se te ocurre alguna idea genial, te sugiero que publiques tu trabajo en un repositorio de Github para que todos podamos trabajar juntos y mejorarlo. –

Respuesta

2

Tengo una solución para esto.

Coloque una vista de tabla como menú de la barra lateral en el lado izquierdo. Coloque una vista de desplazamiento en la parte superior. Agregar contenido a la vista de desplazamiento.

La vista de desplazamiento cubrirá la vista de tabla. Establezca el ancho del tamaño de contenido de la vista de desplazamiento en la suma del ancho del contenido y el ancho de la barra lateral. La posición del contenido está en (ancho de la barra lateral, 0). Puede arrastrarlo para cubrir o mostrar la barra lateral.

El problema es que la vista de tabla no pudo recibir ningún evento táctil porque está cubierto por la vista de desplazamiento.

Así que implemento una subclase.

@interface UICascadeScrollView : UIScrollView { 
     UIView* passthroughView_; 
} 

@property(nonatomic,assign) IBOutlet UIView* passthroughView; 

@end 

@implementation UICascadeScrollView 

@synthesize passthroughView = passthroughView_; 

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
     for(UIView* v in self.subviews) { 
       if(CGRectContainsPoint(v.frame, point)) { 
         // one of the sub view could accept the touch event 
         return [super hitTest:point withEvent:event]; 
       } 
     } 
     CGPoint newPoint = [self convertPoint:point toView:passthroughView_]; 
    return [passthroughView_ hitTest:newPoint withEvent:event]; 
} 


- (void)dealloc { 
     self.passthroughView = nil; 
    [super dealloc]; 
} 


@end 

Cambie la clase scrollview a UICascadeScrollView y configure passthroughView en la barra lateral.

Eso es todo.

============================================== =================================

Una muestra de tres capas en cascada con una vista de tabla como una barra lateral.

[email protected]: slavikshen/CascadeScrollView.git

https://github.com/slavikshen/CascadeScrollView

Ésta es mi primera comprometerse a centro de git. Por favor dime, si hay algo mal.

+0

La solución funciona, sin embargo, no maneja el arrastre horizontal sobre tableView para desplazarse por UICascadeScrollView, como puede hacerlo con la aplicación para iPad de Twitter. ¿Algún consejo sobre cómo manejar ese truco? –

+0

Ponga un UICascadeScrollView A en otro UICascadeScrollView B como contenido. Establezca A.passthroughView = B. – Slavik

+0

No, eso solo golpea TESTS UICascadeScrollView A como antes. –

Cuestiones relacionadas