2012-05-04 19 views

Respuesta

38

Solución:

UITabBarItem *item = [tabBar.items objectAtIndex:0]; 
item.titlePositionAdjustment = UIOffsetMake(0, -5.0); 
+1

Sorprendentemente rápido:' item.setTitlePositionAdjustment (UIOffsetMake (0, -5.0)) '(solo la función setter está disponible en XCode 6.1) – Kasztan

+3

En Swift2/Xcode7 la función setter se ha ido y usted puede use la propiedad normal para establecer el valor. 'item.titlePositionAdjustment = UIOffset (horizontal: 0, vertical: 1000)' –

0

No puede ... puede ser capaz de hackear su camino pero eso no sería fácil y podría romper su aplicación en futuras actualizaciones de iOS.

La mejor opción sería la creación de su propio sistema de UITabBar ... aquí hay un buen guía que podría echar un vistazo a ..

http://idevrecipes.com/2011/01/04/how-does-the-twitter-iphone-app-implement-a-custom-tab-bar/

+3

encontré esta solución: UITabBarItem * Artículo = [tabBar.items objectAtIndex: 0]; item.titlePositionAdjustment = UIOffsetMake (0, -5.0); – CroiOS

+3

Ahh ... lo siento, la última vez que busqué esta característica no estaba allí ... leyendo la referencia de clase ahora solo está disponible para iOS5 +, por lo que es posible que desee verificar si la función está disponible antes de llamarla si su la aplicación está diseñada para funcionar con pre-iOS 5 ... puede hacerlo así ... 'if ([item respondsToSelector: @selector (setTitlePositionAdjustment :)]) {item.titlePositionAdjustment = UIOffsetMake (0, -5.0); } ' – liamnichols

+0

genial, gracias :) – CroiOS

3

actualización para Swift 3

Ponga este código en el interior UITabBarController:

UITabBarItem.appearance().titlePositionAdjustment = UIOffset(horizontal: 0, vertical: -5) 

crédito va a Tim Brown

0

Se puede utilizar para ajustar tabbarItem.titlePositionAdjustment.

En caso de que desee hacer mucho más con eso, acceda a la subvista tabbaritem y busque la etiqueta en tabbar.subviews. Por ejemplo

int i = 0; 
for (NSObject *view in self.tabBar.subviews) 
{ 
    MTLog(@"%@", view); 
    if ([view respondsToSelector:@selector(subviews)]) 
    { 
     for (NSObject *childView in ((UIView *)view).subviews) 
     { 
      if ([childView isKindOfClass:[UILabel class]]) 
      { 
       if (i > (titlesArray.count - 1)) 
        break; 
       UILabel *label = (UILabel *)childView; 
       NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:titlesArray[i] attributes:@{ 
                                      NSFontAttributeName:[UIFont systemFontOfSize:9] 
                                      }]; 

       NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init]; 
       [style setMinimumLineHeight:26]; 
       [style setAlignment:NSTextAlignmentRight]; 

       [attributedString addAttribute:NSParagraphStyleAttributeName 
             value:style 
             range:NSMakeRange(0, attributedString.length)]; 
       label.attributedText = attributedString; 
       i++; 
      } 

     } 
    } 


} 
Cuestiones relacionadas