2016-10-04 5 views
3

КСН 10 этот код не работает, чтобы удалить теневую линию TabBar:Удалить верхнюю строку из TabBar

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

Кто-нибудь знает, что я должен сделать, чтобы удалить его?

На iOS 9.3 с этими двумя линиями линия удаляется, но iOS 10 игнорирует команду setShadowImage.

+0

Можете ли вы показать мне графически? –

+0

В последней строке документации для shadowImage указано, что если backgroundImage равен нулю, shadowImage игнорируется и применяется тень по умолчанию. Поэтому попробуйте удалить setBackgroundImage, чтобы узнать, что произойдет. – iCyberPaul

+0

Проблема в том, что мне нужно установить изображение на вкладку tabBar ... – Camacho

ответ

11

Просто попробуйте реветь код для IOS 10: -

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after application launch. 
    [[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"fondoTabBar"]]; 
    [UITabBar appearance].layer.borderWidth = 0.0f; 
    [UITabBar appearance].clipsToBounds = true; 
    return YES; 
} 

Swift 3.x

UITabBar.appearance().layer.borderWidth = 0.0 
UITabBar.appearance().clipsToBounds = true 
+0

Этот код - это то, что я использую до iOs 10. Этот код работает на предыдущем устройстве iOs 10, но на iOS 10 не работает. – Camacho

+0

Можете ли вы попробовать эту демонстрационную версию своей работы для iOS 10: - https://www.dropbox.com/sh/g4cpq282b7adyg0/AADk3jBHshvsQ-FNIWwzuOOZa?dl=0 –

+0

Спасибо за ваш пример кода. Этот код работает на iOs 10, но мне нужно изменить фон tabBar, когда я меняю фон, линия отображается. Этот код является тем же самым, только я добавил фоновое изображение, и вы можете видеть, что теневое изображение отображается на iOs 10, на iOs 9.3 отлично работает, и строка скрыта. https://1drv.ms/u/s!AlMk_BUOGnOImYtdCSCp6f1MGOu_AQ – Camacho

0

Для прошивки 10 Измененный стиль TabBar до черного сделал трюк

self.tabBarController.tabBar.shadowImage = UIImage() 
self.tabBarController.tabBar.barStyle = .Black 
0

У меня была такая же проблема lem в ios 10. Я исправил эту проблему, просто изменив высоту UITabBar (по умолчанию 49). Проверьте это here как изменить высоту.

0

Вы должны выполнить следующие два метода одновременно:

[[UITabBar appearance] setShadowImage:[UIImage new]]; 
[[UITabBar appearance] setBackgroundImage:[UIImage new]]; 
0

Если вы создаете свой собственный подкласс UITabBarController, вы можете установить значения в viewDidLoad как этот

Swift 3

override func viewDidLoad() { 
     super.viewDidLoad() 
     self.tabBar.layer.borderWidth = 0 
     self.tabBar.clipsToBounds = true 
} 
0

Это теневое изображение (свойство) вкладки. Попробуйте следующие решения и посмотрите.

Попробуйте это, ** 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]]; 

** Swift **

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

// or 

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


Вот яблоко ориентиром для shadowImage.

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

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

1

Просто 2 строки удаляет Известное

tabBar.shadowImage = UIImage() 
tabBar.backgroundImage = UIImage() 
Смежные вопросы