Вопрос по iphone, objective-c, ios – Пространство между пользовательскими UITabBar и ViewController

6

Я взял регулярныйUITabBar и изменил его фоновое изображение на пользовательское, которое имеет меньшую высоту, поэтому я изменилheight изframe. At first what I got is a blank space below the tab bar. so I changed the origin изframe тоже. Но теперь пустое пространство переместилось выше панели вкладок, и вот результат:

space above tab bar

И это код, объявляющий панель вкладок в AppDelegate:

self.tabContoller = [[UITabBarController alloc] init];
//customizing the tabbar
UIImage * tabBackgroundImage = [UIImage imageNamed:@"tabBarBg.png"];
self.tabContoller.tabBar.backgroundColor = [UIColor colorWithRed:245.f/255.f green:245.f/255.f blue:245.f/255.f alpha:255.f/255.f];
self.tabContoller.tabBar.backgroundImage = tabBackgroundImage;
//setting the tabbar height to the correct height of the image
CGRect tabR = self.tabContoller.tabBar.frame;
CGFloat diff = tabR.size.height - tabBackgroundImage.size.height;
tabR.size.height = tabBackgroundImage.size.height;
tabR.origin.y += diff;
self.tabContoller.tabBar.frame = tabR;

Я думаю, что проблема в том, чтоViewControllerРисуют себя над постоянным пространством, которое является высотой обычной панели вкладок. Есть ли способ изменить это?

Это не работает, я даже попытался установить его вviewWillAppear а такжеviewDidAppear, это не имеет никакого эффекта. Nadavrbn
Попробуйте просто увеличивheight изview из viewcontroller. Если вы не можете сформировать XIB, сделайте это вручную вviewDidLoad. Mat

Ваш Ответ

4   ответа
0

Если изменение фрейма, такого как упомянутое @JoaT, не работает, убедитесь, что в представлении контроллера представления установлена правильная маска авторазмера.

этоТАК ссылка может быть полезной.

Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededUIViewAutoresizingFlexibleHeightError: User Rate Limit ExceededUIViewAutoresizingFlexibleBottomMarginError: User Rate Limit Exceededself.tabContoller.tabBar.autoresizesSubviews = YES;Error: User Rate Limit Exceededself.tabContoller.view.autoresizesSubviews = YES;Error: User Rate Limit Exceeded Nadavrbn
0

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

7

Попробуйте создать свой собственный класс, расширяющийся из UITabBar, и используйте эту функцию:

- (CGSize)sizeThatFits:(CGSize)size {
    CGSize auxSize = size;
    auxSize.height = 54; // Put here the new height you want and that's it
    return auxSize;
}

Это изменит размер UITabBar до нужного вам размера. Просто и легко.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
7

Измените подвиды вашего UITabBarController на полноразмерный фрейм, для меня это сработало:

[[yourTabBarController.view.subviews objectAtIndex:0] setFrame:CGRectMake(0, 0, 320, 480)];
Error: User Rate Limit Exceeded Nadavrbn
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы