UITableView'ın üst kısmında bir UISearchBar uyguluyorum.UISearchBis to UISearchDisplayController geçişi 20px kapalıdır
ViewDidLoad'ımda self.edgesForExtendedLayout = UIRectEdgeNone
'u ayarlıyorum.
UISearchBar'ımı nasıl ekliyorum. Sadece benim UITableView başlığına bir UISearchBar eklenmesi ve ofset içeriğini ayarlamak ediyorum:
// Table View
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.screenWidth, self.screenHeight)];
self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
// Customize table appearance
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
self.tableView.backgroundColor = [UIColor tableBackgroundColor];
// Define the table's datasource
self.tableView.dataSource = self;
self.tableView.delegate = self;
[self.view addSubview:self.tableView];
// Add a search bar to the header
self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.screenWidth, 44)];
self.searchBar.tintColor = [UIColor primaryBrandedColor];
self.searchBar.placeholder = NSLocalizedString(@"Search", "Search placeholder");
self.searchBar.backgroundImage = [UIImage imageNamed:@"searchBarBackground"];
[self.searchBar setBackgroundImage:[UIImage imageNamed:@"searchBarBackground"] forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault];
self.searchBar.barTintColor = [UIColor clearColor];
self.searchBar.delegate = self;
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setFont:[UIFont fontWithName:@"Whitney-Light" size:15]];
//Setup search display controller
self.searchController = [[HUMSearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];
self.searchController.delegate = self;
self.searchController.searchResultsDataSource = self;
self.searchController.searchResultsDelegate = self;
self.searchController.searchResultsTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
// Add the searchBar and offset the table view so it's hidden by default.
self.tableView.tableHeaderView = self.searchBar;
self.tableView.contentOffset = CGPointMake(0.0, self.searchBar.frame.size.height);
Bu şey gibi görünmüyor Bunda normal olmayan, ancak orijinal tableview bir 20px boşluk var SearchDisplayController görüntülenir. Bu örnekte, neler olup bittiğini daha açık hale getirmek için NavigationBar'ı gizlemek için SearchDisplayController'ı alt sınıflara ayırdım.
geçişin bir video yakalama: http://cl.ly/0y3L0Z1R1I0c/20pixels.mov
denedim şeyler:
- değiştir 20px yukarı taşımak için searchDisplayControllerWillBeginSearch benim UITableView çerçevesi. Bu geçişi kırar. searchDisplayControllerWillBegin üzerinde UITableView http://cl.ly/033q0L3G0p1T/origin.mov
- değiştirme kaydırma uzaklıkları. Benzer şekilde, bu geçişi kırar.
- UISearchBar'ı el ile canlandırmaya çalıştım ancak bunu da kullanamadım.
Herhangi bir fikir? Birkaç deneme yanılma seans sonra
EVET! Bu beni çok rahatsız ediyor! Teşekkürler! – DonnaLea
gez çubuğu saydam yapmadan aynı çözümü için, kullanımı aşağıdaki gibidir: 'self.edgesForExtendedLayout = UIRectEdgeAll;' 'self.automaticallyAdjustsScrollViewInsets = HAYIR;' 'self.extendedLayoutIncludesOpaqueBars = EVET;' – BreadicalMD
BreadicalMD Brilliant! beni kurtardın. Teşekkürler. –