0

Я собираюсь создать представление «Нет соединения» в промежутке между навигационной панелью и содержимым контроллера.Пробел между навигационной панелью и содержимым контроллера просмотра

Я хочу подклассифицировать UINavigationViewController и перемещать содержимое контроллеров представления внутри бит вниз.

Вопрос в том, как это сделать правильно?

Мое текущее решение работает, но оно также довольно хаки. Я бы хотел сделать это лучше.

// subclass of AGNavigationController 
-(void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    static BOOL firstTime = YES; 
    if (firstTime) { 
     contentView = nil; 
     for (UIView *v in self.view.subviews) { 
      if ([v isKindOfClass:[NSClassFromString(@"UINavigationTransitionView") class]]) { 
       contentView = v; 
       break; 
      } 
     } 
     firstTime = NO; 
     origFrame = contentView.frame; 
     noConnectionView.frame = CGRectMake(0, self.navigationBar.frame.origin.y+self.navigationBar.frame.size.height, 320, 20); 
    } 
    [self adjustToConnection:NO withAnimation:NO]; 
} 

-(void)adjustToConnection:(BOOL)isConnection withAnimation:(BOOL)animation { 
    if (isConnection) { 
     [noConnectionView removeFromSuperview]; 
     contentView.frame = origFrame; 
    } else { 
     [self.view addSubview:noConnectionView]; 
     contentView.frame = CGRectMake(0, origFrame.origin.y+20, 320, origFrame.size.height-20); 
    } 
} 

ответ

0

Создать свой UIView и установите рамку на что-то вроде (0, 0, self.view.frame.size.witdh, 40).

Используйте [self.view addSubview:myView];, чтобы добавить вид на ваш UIViewController.

Переместите элементы вниз в своем главном виде, с вертикальным смещением, установленным на myView.frame.size.height.

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

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