2009-10-13 18 views
5

alt text http://img210.imageshack.us/img210/5992/searchdisplaycontroller.pngPersonalizza UISearchDisplayController

I seguenti oggetti sono personalizzabili?

1. Pulsanti UISearchBar Scope (UISegmentedController)

2. UIResultsTableView

3. Tastiera (almeno così è di colore nero)

+0

Che cosa stai usando per generarlo: un pennino o un codice? – JoePasq

+0

Sto usando il codice. Sono stato in grado di personalizzare tutto così, grazie a tutti per il loro aiuto, tuttavia non ho potuto eliminare la domanda. – Mark

risposta

1

sono stato in grado di personalizzare il tableview utilizzando il seguente codice:

- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView { 
tableView.backgroundColor = [UIColor colorWithRed:(19.0/255.0) green:(19.0/255.0) blue:(19.0/255.0) alpha:1.0]; 
tableView.separatorColor = [UIColor blackColor]; } 

Tuttavia, quando si tocca il pulsante Annulla, l'interfaccia lampeggerà in bianco prima di tornare alla vista tabella originale. Come si puo aggiustare?

+0

Ho dovuto rimuovere l'immagine dal tuo post perché ImageShack lo ha eliminato e lo ha sostituito con la pubblicità. Vedere http://meta.stackexchange.com/q/263771/215468 per ulteriori informazioni. Se possibile, sarebbe bello caricarli di nuovo. Grazie! – Undo

3

alt text http://img527.imageshack.us/img527/9775/searchdisplaycontrollerz.png

sono stato in grado di cambiare il controllo segmentato da una sorta-di hack Codice:

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller { 
for (UIView *subview in self.view.subviews) { 
    for (UIView *subview2 in subview.subviews) { 
     if ([subview2 isKindOfClass:[UISegmentedControl class]]) { 
      UISegmentedControl *segmentedControl = (UISegmentedControl *)subview2; 
      segmentedControl.tintColor = [UIColor blackColor]; 
      segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
     }   
    } 
}} 

Tuttavia i pulsanti sono enormi, come potrei fissarlo in modo che siano altrettanto bella come l'originale?

1

Non sono mai riuscito a ridurre i pulsanti nonostante provassi ogni segmentedControlStyle. Ecco il codice che dovevo usare per ottenere almeno il colore della tinta corretta su IOS4:

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller { 
    static BOOL tintAlreadyChanged = NO; 
    if (tintAlreadyChanged) return; 

    NSLog(@"Searching subViews for UISegmentControl:"); 
    //fix segmented control 
    for (UIView *subview in self.view.subviews) { 
     //NSLog(@"\n\nsubView = %@",subview); 
     for (UIView *subview2 in subview.subviews) { 
      //NSLog(@"subView2 = %@",subview2); 
      for (UIView *subview3 in subview2.subviews) { 
       //NSLog(@"subView3 = %@",subview3); 
       if ([subview3 isKindOfClass:[UISegmentedControl class]]) { 
        NSLog(@"Found UISegment SubView = %@",subview3); 
        UISegmentedControl *segmentedControl = (UISegmentedControl *)subview3; 
        segmentedControl.tintColor = [UIColor blackColor]; 
        segmentedControl.segmentedControlStyle = UISegmentedControlStyleBezeled; 
        tintAlreadyChanged = YES; 
       } 
      }      
     } 
    } 
} 
Problemi correlati