Подтвердить что ты не робот

IOS 7 tabBar-line, как его удалить?

Apple добавила крошечную строку над tabBar в iOS 7, которая должна работать как тень или исчезать между tabBar и пользовательским интерфейсом

enter image description here

Так как я использую пользовательский tabBar, линия довольно раздражает. Как его удалить? Пожалуйста, скажите мне, что это возможно, иначе мне нужно перепроектировать все мое приложение lol....

/С уважением

* Изменить

Считайте мою проблему следующей строкой кода:

[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
4b9b3361

Ответ 1

    UIImage* tabBarBackground = [UIImage imageNamed:@"tabbar_bg.png"];
    [[UITabBar appearance] setShadowImage:tabBarBackground];
    [[UITabBar appearance] setBackgroundImage:tabBarBackground];   

Ответ 2

Этот код работает очень хорошо для меня (у меня на самом деле нет фонового изображения для панели вкладок):

[tab_main.tabBar setBackgroundImage:[[UIImage alloc] init]];
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];

И я также использую этот код для добавления фрейма:

UIColor* color_green = UIColorFromRGB(0x348e5b);
tab_main.tabBar.layer.borderWidth = 0.50;
tab_main.tabBar.layer.borderColor = color_green.CGColor;
[[UITabBar appearance] setTintColor:color_green];

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

Ответ 3

В iOS 8 верхнюю границу можно удалить, установив стиль панели вкладок в черный цвет в инспекторе.

Ответ 4

Swift

Хорошее простое решение:

Запишите этот ниже код в свой собственный класс панели вкладок. Затем он скроет горизонтальную линию тени.

self.tabBar.setValue(true, forKey: "_hidesShadow")

Цель C

[self.tabBar setValue:@(YES) forKeyPath:@"_hidesShadow"];

Ответ 5

self.tabBarController =  [[UITabBarController alloc] init];
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"YOURIMAGE.png"]];
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];

Ответ 6

Я не вижу ничего в API UITabBar для воздействия на этот разделитель, но если разделитель находится в UITabBar (подкласс UIView), я бы ожидал, что вы сможете вставить новый UIView с одним пикселем на наверху. Вам нужно будет захватить фрагмент изображения, который вы хотите отобразить, и нарисовать его в новом представлении. И я не уверен, что UITabBar каким-то образом предотвратит добавление подзапроса или предотвратит включение subview. Но это где я начну.

Ответ 7

Добавьте следующий код в метод AppDelegate.m didFinishLaunchingWithOptions:

if ([[[UIDevice currentDevice] systemVersion] floatValue]>=7.0)
 [[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];

Ответ 8

Это сработало для меня

UIImage* tabBarBackground = [UIImage new];
if(!OSVersionIsAtLeastiOS7())
{
    tabBarBackground = [UIImage imageNamed:@"whitebg"];
}
[[UITabBar appearance] setShadowImage:tabBarBackground];

[[UITabBar appearance] setBackgroundImage:tabBarBackground];

Ответ 9

Вы можете скрыть "разделительную линию" с помощью этого кода:

[self.tabBar setValue:@(YES) forKeyPath:@"_hidesShadow"];

Ответ 10

 [_tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tabtarsprnt"]]; //your custom image
[self.tabBarController.tabBar setClipsToBounds:YES];

этот код также решил мою проблему

Ответ 11

В моем случае мне также нужно было установить другую тень, в конце концов, единственное, что работало при настройке настраиваемой тени, заключалось в том, чтобы добавить одноточечную высоту UIView 1 над панелью вкладок:

    UIView *whiteLine = [[UIView alloc] initWithFrame:CGRectMake(0.0, -1.0, self.tabBar.frame.size.width, 1.0)];
    whiteLine.backgroundColor = [UIColor whiteColor];
    [self.tabBar addSubview:whiteLine];