2010-08-05 5 views
8

Voglio mostrare all'utente c'è un contenuto più sotto, ma UITableView mostra solo l'indicatore di scorrimento quando si scorre il tableview. C'è un modo, quindi posso mostrare l'indicatore di scorrimento sempreCome scroller sempre visibile di Tableview in Obj c?

+0

Hai risolto questo problema? – Shamsiddin

+0

ciao @mahek mi sto chiedendo questi problemi, l'hai risolto? per favore dammi qualche suggerimento Grazie in anticipo. – ilesh

risposta

3

Non c'è modo (che io sappia) di visualizzare permanentemente le barre di scorrimento. È possibile

[tableView flashScrollIndicators] 

in -viewDidAppear: per visualizzare brevemente le barre di scorrimento quando viene mostrata la vista.

Inoltre, se si dispone di molte voci, si potrebbe desiderare di prendere in considerazione la visualizzazione dell'indice di sezione (alfabetico) a destra. Per fare ciò, definisci -sectionIndexTitlesForTableView nel tuo UITableViewDataSource. Utilizzando tableView.sectionIndexMinimumDisplayRowCount è possibile definire il numero minimo di voci per visualizzare la sezione Indice.

3

ho fatto :) Sono la programmazione in MonoDevelop, quindi ho solo descrivere il metodo:

Dovete fare il vostro proprio UITableView classe. Ci sovraccaricate PerformSelector e non chiamare la funzione base di esso, ma chiamano flashScrollIndicators se il nome del selettore è _notifyPopOverStoppedScrolling.

Funzione di sovraccarico ReloadData e anche chiamata flashScrollIndicators. Solo con lo zoom scompare, ma è possibile chiamare lo flashScrollIndicators anche con lo zoom.

+0

Perdi la funzionalità. Mentre funziona, dovrebbe esserci un modo migliore. –

+0

@Neysor puoi fornire un codice qui? per favore. – ilesh

+0

@Ilesh ho solo modificato per una migliore visualizzazione non pubblicato. devi chiedere 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"); 
} 

Proprio lampeggiano la barra di scorrimento

+0

Questo blocco di codice funziona meglio, ma il problema con iPad Air e le immagini delle app non vengono caricate dopo aver implementato il codice precedente Quindi qualsiasi suggerimento su questo problema –

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

Questo può aiutare a risolvere il tuo problema

1

ho avuto soluzione per questa domanda.
Implementare 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 

E Set tag Tableview o Scrollview Come

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

e per Tableview [tableView flashScrollIndicators]; e ScrollView [[scrollobj flashScrollIndicators]]; Grazie.

0

Ecco il pezzo di codice funziona per me, aggiungere questo codice nella viewDidAppear

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

Felice Coding !!!