2015-09-18 17 views
5

Utilizzo di UITabbar in un'app. C'è una linea di confine superiore che si trova nella parte superiore di UITabbar. Fare riferimento sotto l'immagine: -Rimuovi la linea di bordo superiore UITabbar

ho cercato con Google e provato il codice suggerito come: -

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

anche

[[UITabBar appearance] setShadowImage:nil]; 

self.navigationController.toolbar.clipsToBounds = YES; 

Ma nessuno di loro sta lavorando. Qualche soluzione?

enter image description here

+0

** iOS 10.X ** apportare alcune modifiche, quindi seguire [THIS ANSWER] (http://stackoverflow.com/a/39858796/3752143). –

risposta

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

oppure è possibile utilizzare

[[UITabBar appearance] setShadowImage:[UIImage imageNamed:@"transparentShadow.png"]]; 

o

[[UITabBar appearance] setShadowImage:nil]; 
+0

Come si aggiunge l'immagine di sfondo anche così basta nascondere l'ombra. – Usama

+0

vuoi dire che ho bisogno di un'immagine trasparente? –

+0

non è necessario aggiungere un'immagine trasparente se non si desidera alcuna immagine per l'ombra. basta passare nil. vedi la mia risposta modificata. – Usama

1

È necessario aggiungere solo che questa due righe di codice per rimuovere confine dal UITabBar:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 


    [[UITabBar appearance] setBackgroundImage:[[UIImage alloc] init]]; 
    [[UITabBar appearance] setShadowImage:[[UIImage alloc] init]]; 
    // Override point for customization after application launch. 
    return YES; 
} 

Prima:

enter image description here

Dopo:

enter image description here

UPDATE: È come immagine di sfondo bene e impostare ombra come nullo canset come codice seguente

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

USCITA:

enter image description here

+0

Funziona ma ho bisogno di impostare anche l'immagine di sfondo. Quindi se rimuovo la prima riga allora mostra la riga –

+0

Questo non funziona swift 3 xcode 8. Come posso rimuovere questa linea? –

5

tabBar.clipsToBounds = YES; è lavoro per me.

1

shadowImage proprietà di UITabbar è responsabile di questa linea di confine (ombreggiatura grigia) su UITabbar. Aggiorna il valore di questa proprietà per rimuoverlo.

Prova questo, ** 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() 


Ecco linee guida Apple per shadowImage

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

L'impostazione predefinita è nulla. Quando non è nulla, un'immagine shadow personalizzata da mostrare invece di l'immagine shadow predefinita.Per visualizzare un'ombra personalizzata, è necessario impostare un'immagine di sfondo personalizzata con -setBackgroundImage: (se viene utilizzata l'immagine di sfondo predefinita , l'immagine shadow predefinita sarà utilizzata).

Problemi correlati