2012-03-27 2 views
0

Mit Storyboard, habe ich diese UITableViewController:vergrössern Tableview Header

enter image description here

Ok, wenn ich Suche zu starten, in searchBarShouldBeginEditing: werde ich Navigationsleiste auszublenden und den Umfang Leiste anzeigen:

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 
    [self.mySearchBar setShowsScopeBar:YES]; 
    [self.mySearchBar sizeToFit]; 
    [self.mySearchBar setShowsCancelButton:YES animated:YES]; 
    [self.navigationController setNavigationBarHidden:YES animated:YES]; 

    return YES; 
} 

Die erste Zelle der Tabelle ist jedoch hinter der Bereichsleiste verborgen. Ich denke ich muss den Tabellenkopf erhöhen, aber wie mache ich das? Oder haben Sie eine andere Möglichkeit, es zu beheben?

Antwort

1

meine eigene Frage zu beantworten, sucht ein wenig weiter habe ich eine Lösung gefunden, die am richtigsten ist, die UISearchDisplayController verwendet. Hier ist das Tutorial, das ich befolgte: https://developer.apple.com/library/ios/#samplecode/TableSearch/Introduction/Intro.html

Auf diese Weise verbirgt er die Navigationsleiste und zeigt den Bereich ohne die Notwendigkeit für zusätzliche Codes und ohne das Problem der ersten Zelle wird ausgeblendet.

1

UITableViewDelegate hat ein Verfahren, das dies tut:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    //return height as a float here 
} 

, dass mit der entsprechenden Höhe in Ihrer Stellvertretung Implement.

Alternativ kann, wenn der Stab die Oberseite der Zelle versteckt, können Sie die Tabellenansicht nach unten auf dem Bildschirm, indem dessen Rahmen wie so bewegen müssen:

CGRect newFrame = tableView.frame; 
newFrame.origin.y += 45; //or whatever number of pixels you want to move it down by 
tableView.frame = newFrame;