2013-02-26 14 views
6

Ben şöyle oto düzeni kullanarak ayarlanmış bir tablo görünümünde üstünde bir arama çubuğu var: Onu çalıştırdığınızdaOtomatik Düzen çalışmıyor?

_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)]]; 

Her şey güzel görünüyor. Ancak arama çubuğunu düzenlemeye başlamadan önce _searchBar.showsScopeBar = YES; yaptığımda, arama çubuğu ve tablo görünümü otomatik olarak yeniden boyutlandırılmaz. [_searchBar sizeToFit] yapsam bile, tablo görünümü yeniden boyutlandırılmaz ve aşağı taşınır. Niye ya??

Not: Arama çubuğunu tablo görünümünün başlığını koymayacağım; Sadece bir ebeveyn görünümü ve iki alt görüş. Not 2: _searchBar.showsScopeBar = YES;'u aramadan önce ve sonra intrinsicContentSize'un _searchBar numarasını kontrol ettim ve boyut gerçekten değişiyor.

cevap

4

Sen invalidateIntrinsicContentSize zorunda: Yani bu, doğru bir Apple hata

- (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]; 
} 

UISearchBar's scope button won't show up iOS6

+0

görüyor musunuz? Btw, 'sizeToFit'lere ihtiyaç yoktur. – fumoboy007

+1

@ fumoboy007 Bu 'sizeToFit' referansları ile ilgili olarak, bunlara ihtiyaç duymadığınızı ve bunları kaldırdığınızı düzelttiniz. Teşekkürler. – Rob

İlgili konular