2012-01-26 14 views
5

Sto cercando di personalizzare UITabBarItem ma ho problemi con la posizione dell'immagine.UITabBarItem finishedImageSelected placed offset the tab bar

enter image description here

La dimensione dell'immagine è 81px x 49px, la stessa altezza del UITabBar. Questo è come ho impostato l'immagine:

// AppDelegate 
    BlocosController *blocos = [[[BlocosController alloc] initWithManagedObjectContext:moc] autorelease]; 
    UINavigationController *navBlocos = [[[UINavigationController alloc] initWithRootViewController:blocos] autorelease]; 
    tabBarController = [[UITabBarController alloc] initWithManagedObjectContext:moc]; 
    tabBarController.viewControllers = [NSArray arrayWithObjects: navData, navBlocos, navBairro, navAtualizar, nil]; 

// ... 

// BlocosController.m 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     self.tabBarItem = [[[UITabBarItem alloc] initWithTitle:TITLE image:nil tag:10] autorelease]; 
     [[self tabBarItem] setFinishedSelectedImage:[UIImage imageNamed:@"tab_bar_blocos_selected"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab_bar_blocos_unselected"]]; 
    } 
    return self; 
} 

ho ricerca su Google e ho trovato this tutorial, il codice utilizza la stessa API come io uso e funziona come previsto.Il codice in questo articolo si comporta proprio come il mio, ma dal momento che il loro sfondo è dello stesso colore c'è un'illusione che sia stato posizionato correttamente.

Perché l'opzione finishedSelected selezionata e quella deselezionata vengono posizionate non allineate con la scheda della scheda? Come sistemarlo?

+0

Ho incontrato lo stesso problema ... – meadlai

risposta

1

Ho trovato il modo corretto per realizzare questo e fatto un post: felipecypriano.com/2012/02/27/….

Fondamentalmente il problema è che finitaImmagine è l'icona e non l'icona e lo sfondo, è possibile utilizzare lo sfondo modificando la proprietà imageInset.