2016-10-04 3 views
3

auf iOS 10 dieser Code funktioniert nicht, um die tabBar Schattenlinie zu entfernen:von oberen Zeile entfernen TabBar-

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

Jemand weiß, was muss ich tun, um es zu entfernen?

Auf iOS 9.3 mit diesen zwei Zeilen wird die Zeile entfernt, aber iOS 10 ignoriert setShadowImage Befehl.

+0

Können Sie mir grafisch zeigen? –

+0

Die letzte Zeile der Dokumentation für shadowImage besagt, dass, wenn backgroundImage gleich null ist, shadowImage ignoriert wird und ein Standardschatten angewendet wird. Versuchen Sie also, setBackgroundImage zu entfernen, um zu sehen, was passiert. – iCyberPaul

+0

Das Problem ist, dass ich Bild zu TabBar Hintergrund setzen muss ... – Camacho

Antwort

11

Versuchen Sie einfach Code unten für 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

Dieser Code ist, dass ich bis iOs 10 verwenden. Dieser Code funktioniert auf einem früheren iOS 10-Gerät, aber auf iOs 10 funktioniert nicht. – Camacho

+0

Können Sie bitte versuchen diese Demo ihre Arbeit für iOS 10: - https://www.dropbox.com/sh/g4cpq282b7adyg0/AADk3jBHshvsQ-FNIWwzuOOZa?dl=0 –

+0

Vielen Dank für Ihren Beispielcode. Dieser Code funktioniert auf iOs 10, aber ich muss den tabBar-Hintergrund ändern, wenn ich den Hintergrund ändere, wird die Zeile angezeigt. Dieser Code ist der gleiche, nur habe ich ein Hintergrundbild hinzugefügt und Sie können sehen, dass das Schattenbild auf iOs 10 angezeigt wird, auf iOs 9.3 funktioniert gut und die Zeile ist ausgeblendet. https://1drv.ms/u/s!AlMk_BUOGnOImYtdCSCp6f1MGOu_AQ – Camacho

0

Für iOS 10 veränderte Tabbar Stil schwarz hat den Trick

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

Ich hatte das gleiche Problem lem in ios 10. Ich habe dieses Problem behoben, indem ich nur die Höhe von UITabBar änderte (standardmäßig 49). Überprüfen Sie es here, wie Sie die Höhe ändern.

0

Sie sollten die folgenden zwei Methoden zur gleichen Zeit implementieren:

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

Wenn Sie eine eigene Unterklasse von UITabBarController erstellen, können Sie die Werte in viewDidLoad wie diese

Swift 3 einstellen

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

Es ist ein Schattenbild (Eigenschaft) von Tabbar. Versuchen Sie folgende Lösungen und sehen Sie.

Versuchen Sie dieses, ** 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() 


Hier Apfel Leitlinie für shadowImage ist.

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

Standard ist gleich Null. Wenn nicht-null, wird ein benutzerdefiniertes Schattenbild angezeigt, das anstelle des Standard-Schattenbildes angezeigt wird. Damit ein benutzerdefinierter Schatten angezeigt wird, muss ein benutzerdefiniertes Hintergrundbild ebenfalls mit -setBackgroundImage festgelegt werden: (Wenn das Standardhintergrundbild verwendet wird, wird das Standardschattenbild verwendet).

1

Nur die 2 Zeilen entfernt die obere Linie

tabBar.shadowImage = UIImage() 
tabBar.backgroundImage = UIImage() 
Verwandte Themen