1

У меня есть собственный сегментированный элемент управления в моем контроллере таблиц и панель поиска в заголовке tableview. Когда я просматриваю последнюю ячейку, backview возвращается назад. Но проблема в том, что моя панель поиска скрывается за сегментированным элементом управления, а в нижней части окна появляется пустое пространство. Я хочу, чтобы, если пользователь прокручивает таблицу, он отскакивает и возвращается в прежнее положение, как показано на первом снимке экрана.iOS: заголовок UITableview скрывается за просмотром на прокрутке вверх

Вот код моего сегментированного контроля:

self.projectSegmentControl = [[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"Active Projects", @"All Projects", nil]]; 
    [self.projectSegmentControl addTarget:self action:@selector(actionSelectProject) forControlEvents:UIControlEventValueChanged]; 
    CGRect screenRect = [[UIScreen mainScreen] bounds]; 
    CGFloat screenWidth = screenRect.size.width -20; 
    self.projectSegmentControl.frame = CGRectMake([UIScreen mainScreen].bounds.size.width-screenWidth-5,10, screenWidth, 30.0); 
    _segmentControlView = [[UIView alloc] initWithFrame: CGRectMake(0,60, screenRect.size.width,47.0)]; 
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    _segmentControlView.backgroundColor = [UIColor whiteColor]; 
    self.projectSegmentControl.backgroundColor = [UIColor whiteColor]; 
    [_segmentControlView addSubview:self.projectSegmentControl]; 
    [appDelegate.window addSubview:_segmentControlView]; 
    self.projectSegmentControl.selectedSegmentIndex = 0; 
    CGFloat screenHeight = screenRect.size.height; 
    if(screenHeight==480 || screenHeight==568) 
    { 
     CGPoint newOffset = CGPointMake(0, -[self.tableView contentInset].top); 
     [self.tableView setContentOffset:newOffset animated:YES]; 
    } 

    UIFont *font = [UIFont fontWithName:@"Avenir" size:12.0f]; 
    NSDictionary *attributes = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName]; 
    [_projectSegmentControl setTitleTextAttributes:attributes forState:UIControlStateNormal]; 

Это скриншот, когда TableView появляется: enter image description here

Когда я прокрутка вверх Tableview отскока назад, но поиск бар скрыть за сегментированное управлением.

enter image description here

PS: Я добавлю код, если это необходимо. Заранее спасибо

+0

, пожалуйста, напишите свой код – SeanChense

+0

Я добавил код моего сегментарного элемента управления .. если вы хотите добавить код, я добавлю. –

ответ

0

с поста выше я предполагаю, что вы используете

UITableViewController (Не UIViewController)

вы добавили SearchBar в заголовке Tableview.

затем программно вы создали сегментированный контроллер и добавил в окне

CGRect screenRect = [[UIScreen mainScreen] bounds]; 
    CGFloat screenWidth = screenRect.size.width -20; 
    self.projectSegmentControl.frame = CGRectMake([UIScreen mainScreen].bounds.size.width-screenWidth-5,10, screenWidth, 30.0); 
    _segmentControlView = [[UIView alloc] initWithFrame: CGRectMake(0,60, screenRect.size.width,47.0)]; 
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 

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

РЕШЕНИЕ

шаг 1. создать UIViewController (Не UITableViewController)
Шаг 2. Добавление сегментирован управления в режиме
шаг 3. добавить статический SearchBar под сегментированного контролем. шаг 4.so при прокрутке таблицы, сегментированный контроль не будет скрыт

Надеюсь, это вам поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^