У меня есть приложение, в котором я скрываю и показываю вкладку в событии, ниже приведен метод, который я использую, когда я пытаюсь его скрыть, он отлично работает. Но когда я пытаюсь сделать это видимым, это не работает.
-(void)setTabBarVisible:(BOOL)visible animated:(BOOL)animated completion:(void (^)(BOOL))completion {
// RootViewController* tabBarController = (RootViewController*)self.navigationController.parentViewController.parentViewController;
UITabBarController *tabBarController = self.tabBarController;
CGFloat duration = (animated)? 0.3 : 0.0;
CGRect frame = tabBarController.tabBar.frame;
CGFloat height = frame.size.height;
CGFloat offsetY = (visible)? -height : height;
CGRect playerFrame = player.view.frame;
CGRect toolBarFrame = self.toolbar.frame;
[UIView animateWithDuration:duration animations:^{
CGRect fr = CGRectOffset(frame, 0, offsetY);
tabBarController.tabBar.frame = fr;
if((!visible && ![self toolBarOnBottom]) || visible) {
self.toolbar.frame = CGRectOffset(toolBarFrame, 0, offsetY);
[self.toolbar layoutIfNeeded];
}
} completion:completion];
}
Я, когда я отлаживаю код во второй раз, когда я вызываю этот метод, чтобы сделать его видимым, рамка панели вкладок равна нулю, я думаю, что это проблема. Я тестирую это на Xcode 9 с iOS 11 SDK. Я не уверен, имеет ли Безопасная зона какое-либо отношение к этому.
Любая помощь будет оценена по достоинству.
tabBarController
nil
? 2. Когда вы вызываете этот метод? (от каких других методов). 3. Используете ли вы автомакет? - person danypata   schedule 14.12.2017