it-swarm.com.ru

iOS 7 tabBar-line, как его убрать?

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

enter image description here

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

/ С уважением

*Правка  

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

[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
42
user1293618
    UIImage* tabBarBackground = [UIImage imageNamed:@"tabbar_bg.png"];
    [[UITabBar appearance] setShadowImage:tabBarBackground];
    [[UITabBar appearance] setBackgroundImage:tabBarBackground];   
22
liancheng.jiang

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

[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];

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

14
superarts.org

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

7
Artjom Zabelin

Свифт

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

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

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

Цель C

[self.tabBar setValue:@(YES) forKeyPath:@"_hidesShadow"];
5
Sourabh Sharma
self.tabBarController =  [[UITabBarController alloc] init];
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"YOURIMAGE.png"]];
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
1
dineshthamburu
 [_tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tabtarsprnt"]]; //your custom image
[self.tabBarController.tabBar setClipsToBounds:YES];

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

0
Daxesh Nagar

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

0
bneely

Попробуйте это, ** Objective-C **

//Remove shadow image by assigning nil value.
[[UITabBar appearance] setShadowImage: nil];

// or 

// Assing UIImage instance without image reference
[[UITabBar appearance] setShadowImage: [[UIImage alloc] init]];

** Свифт **

//Remove shadow image by assigning nil value.
UITabBar.appearance().shadowImage = nil

// or 

// Assing UIImage instance without image reference
UITabBar.appearance().shadowImage = UIImage()


Вот документ Apple для shadowImage .

@available(iOS 6.0, *)
open var shadowImage: UIImage?

По умолчанию это ноль. Когда не ноль, пользовательское теневое изображение, чтобы показать вместо теневое изображение по умолчанию. Для показа пользовательской тени - пользовательская фоновое изображение также должно быть установлено с -setBackgroundImage: (если используется фоновое изображение по умолчанию, теневое изображение по умолчанию будет используется).

0
Krunal

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

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

[[UITabBar appearance] setBackgroundImage:tabBarBackground];
0
Zoeb S

В моем случае мне также нужно было установить другую тень, в конце концов, единственное, что сработало при настройке пользовательской тени, - это добавление точки 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];
0
Jeroen

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

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