2013-02-26 18 views
6

Ho una barra di ricerca in cima ad una visione tavolo istituito con il layout automatico in questo modo:Layout automatico non funziona?

_searchBar.translatesAutoresizingMaskIntoConstraints = NO; 
_tableView.translatesAutoresizingMaskIntoConstraints = NO; 

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_searchBar]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_searchBar)]]; 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_tableView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableView)]]; 

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_searchBar][_tableView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_searchBar, _tableView)]]; 

Tutto sembra bello quando l'eseguo. Ma quando faccio _searchBar.showsScopeBar = YES; prima di iniziare a modificare la barra di ricerca, la barra di ricerca e la vista tabella non vengono ridimensionate automaticamente. Anche quando eseguo lo [_searchBar sizeToFit], la vista tabella non viene ridimensionata e spostata verso il basso. Perché??

Nota: non inserisco la barra di ricerca come intestazione della vista tabella; è solo una vista genitore e due sottoview. Nota 2: Ho controllato il intrinsicContentSize di _searchBar prima e dopo chiamo _searchBar.showsScopeBar = YES; e la dimensione in effetti cambia.

risposta

4

Bisogna invalidateIntrinsicContentSize:

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 
{ 
    searchBar.showsScopeBar = YES; 
    [searchBar invalidateIntrinsicContentSize]; 
    [searchBar setShowsCancelButton:YES animated:YES]; 
} 

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar 
{ 
    searchBar.showsScopeBar = NO; 
    [searchBar invalidateIntrinsicContentSize]; 
    [searchBar setShowsCancelButton:NO animated:YES]; 
} 

Vedi UISearchBar's scope button won't show up iOS6

+0

Quindi questo è un bug di Apple, giusto? A proposito, quei 'sizeToFit's non sono necessari. – fumoboy007

+1

@ fumoboy007 Per quanto riguarda i riferimenti 'sizeToFit', hai ragione che quelli non sono necessari e li ho rimossi. Grazie. – Rob

Problemi correlati