2010-08-05 9 views
8

Quiero mostrar al usuario que hay más contenido a continuación pero UITableView solo muestra el indicador de desplazamiento cuando nos desplazamos por la vista de tabla. Hay alguna manera, así que puedo mostrar el indicador de desplazamiento siempre¿Cómo siempre el desplazamiento visible de Tableview en Obj c?

+0

¿Has resuelto este problema? – Shamsiddin

+0

hola @mahek Me pregunto estos problemas, ¿Lo resolvió? por favor dame alguna sugerencia. Gracias por adelantado. – ilesh

Respuesta

3

No hay forma (que yo sepa) de mostrar permanentemente las barras de desplazamiento. Puede

[tableView flashScrollIndicators] 

en -viewDidAppear: para mostrar las barras de desplazamiento en breve cuando se muestra la vista.

Además, si tiene muchas entradas, puede considerar mostrar el índice de sección (alfabético) a la derecha. Para hacer eso, defina -sectionIndexTitlesForTableView en su UITableViewDataSource. Usando tableView.sectionIndexMinimumDisplayRowCount puede definir el número mínimo de entradas para mostrar la sección Índice.

3

lo hice :) Soy la programación en MonoDevelop, por lo que sólo describen el método:

usted tiene que hacer su propia clase UITableView. Allí sobrecarga PerformSelector y NO llama a la función de base, , pero llama al flashScrollIndicators si el nombre del Selector es _notifyPopOverStoppedScrolling.

Función de sobrecarga ReloadData y allí también llame al flashScrollIndicators. Solo al hacer zoom desaparecerá, pero también puede llamar al flashScrollIndicators al hacer zoom.

+0

Pierdes la funcionalidad. Mientras trabaja, debería haber una mejor manera. –

+0

@Neysor puede proporcionar algún código aquí.? Por favor. – ilesh

+0

@Ilesh solo edité para una mejor visualización no publicada. tienes que preguntarle a Gerold;) – Neysor

6
-(void)viewDidAppear:(BOOL)animated{ 

timer = [NSTimer scheduledTimerWithTimeInterval:0.8 target:self selector:@selector(indicator:) userInfo:nil repeats:YES]; 

} 

-(void)viewDidDisappear:(BOOL)animated{ 
     [timer invalidate]; 
} 

-(void)indicator:(BOOL)animated{ 
     [tableViewer flashScrollIndicators]; 
    NSLog(@"asda"); 
} 

Sólo parpadear la barra de desplazamiento

+0

Este trozo de código funciona mejor pero el problema con iPad Air y las imágenes de la aplicación no se cargan después de implementar el código anterior. Así que cualquier pista sobre ese problema –

2
- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.tableView flashScrollIndicators]; 
} 

Esto le puede ayudar a resolver su problema

1

llegué Solución para esta pregunta.
Implementar UIImageView

@implementation UIImageView (UIScrollView) 
    - (void) setAlpha:(float)alpha { 

     if (self.superview.tag == noDisableVerticalScrollTag) { 
      if (alpha == 0 && self.autoresizingMask == UIViewAutoresizingFlexibleLeftMargin) { 
       if (self.frame.size.width <10 && self.frame.size.height > self.frame.size.width) { 
        UIScrollView *sc = (UIScrollView*)self.superview; 
        if (sc.frame.size.height < sc.contentSize.height) { 
         return; 
        } 
       } 
      } 
     } 

     if (self.superview.tag == noDisableHorizontalScrollTag) { 
      if (alpha == 0 && self.autoresizingMask == UIViewAutoresizingFlexibleTopMargin) { 
       if (self.frame.size.height <10 && self.frame.size.height < self.frame.size.width) { 
        UIScrollView *sc = (UIScrollView*)self.superview; 
        if (sc.frame.size.width < sc.contentSize.width) { 
         return; 
        } 
       } 
      } 
     } 

     [super setAlpha:alpha]; 
    } 
    @end 

Y conjunto de etiquetas o TableView ScrollView Como

#define noDisableVerticalScrollTag 97240626 //for visible only vertical scrollIndicator. 
#define noDisableHorizontalScrollTag 9898460 // for visible only Horizontal scrolling. 

como para TableView [tableView flashScrollIndicators]; y ScrollView [[scrollobj flashScrollIndicators]]; Gracias.

0

Aquí está la pieza de código que funciona para mí, añadir este código en viewDidAppear

DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { 
     self.tableView_service.flashScrollIndicators() 
    } 

Codificación feliz !!!

Cuestiones relacionadas