2015-05-14 1 views
1

В моем приложении у меня есть панель поиска в заголовке моего UITableView. Я попытался установить смещение содержимого на мой UITableView для скрытия строки поиска, но это дает мне некоторые проблемы.iOS UITableView смещение содержимого не работает в iOS7

Наконец я решил так:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [self performSelector:@selector(hideSearchBar) withObject:nil afterDelay:0.0f]; 
} 

- (void)hideSearchBar 
{ 
    self.tblView.contentOffset = CGPointMake(0, 40); 
} 

Проблема заключается в том, что работает только для прошивки 8.

Как я могу добиться этого правильно работать на оба прошивке 7 & 8 ????

Извините за мой плохой английский. Заранее спасибо.

+0

возможно дубликат [UITableView contentOffSet не работает должным образом] (http://stackoverflow.com/questions/15222186/uitableview-contentoffset-is-not-working-properly) – Yuyutsu

+0

я получаю это решение от этой должности , Проблема в том, что это работает только для меня в iOS 8. Я хочу знать, как это сделать для iOS7. – user3065901

ответ

1

Если установить заголовок по self.tblView.tableHeaderView = yourSearchBar (рекомендуемый способ), попробуйте

self.tblView.tableHeaderView = nil; 

или

self.tblView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectZero]; 

, чтобы скрыть его.

пс. yourSearchBar должен быть переменной экземпляра или свойство, которое будет отображаться удобно в будущем.

+0

Я не хочу скрыть весь заголовок. В заголовке у меня есть больше элементов, чем поисковая панель, которую я хочу показать. Панель поиска находится наверху. Я просто хочу отображать tableview в определенной позиции, чтобы скрыть панель поиска. – user3065901

+0

@ user3065901 Может быть, вы не должны устанавливать его как headerView таблицыView. Вместо этого вы можете добавить toolBarView в супервизор tableView как его subView. Затем измените рамку toolBarView в методе 'scrollViewDidScroll:'. – liushuaikobe

1
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UISearchBar *bar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 40)]; 

    self.tableView.tableHeaderView = bar; 

} 

- (void)viewWillAppear:(BOOL)animated 
{ 
    [self performSelector:@selector(hideSearchBar) withObject:nil afterDelay:0.0f]; 
} 

- (void)hideSearchBar 
{ 
    self.tableView.contentOffset = CGPointMake(0, -24); 
} 
+0

Это работает для меня в iOS 8, но не в iOS7. Я хочу знать, как это сделать для iOS7. – user3065901