2012-05-04 13 views

答えて

38

.. HERESに...あなた自身のUITabBarシステムを作成するためにあなたが見て取ることができる良いガイドになります解決策:

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

驚くほど速いです:item.setTitlePositionAdjustment(UIOffsetMake(0、-5.0)) '(XCode 6.1でのみ利用可能なセッター機能) – Kasztan

+3

Swift2/Xcode7ではセッター機能がなくなりました。値を設定するにはnormalプロパティを使用します。 'item.titlePositionAdjustment = UIOffset(水平:0、垂直:1000)' –

0

あなたはそれを回避することができるかもしれませんが、それは簡単ではなく、今後のiOSアップデートであなたのアプリを壊す可能性があります。

最善の策は

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

+3

ため私はこの解決策を見つけました。 item.titlePositionAdjustment = UIOffsetMake(0、-5.0); – CroiOS

+3

Ahh ..申し訳ありませんが、前回この機能を探していましたが、そこにはありませんでした...クラスリファレンスを読んで、iOS5 +でしか使用できないようにしました。 appはiOS 5より前のバージョンで動作するように設計されています...そうすることができます... if([item respondsToSelector:@selector(setTitlePositionAdjustment :)]){item.titlePositionAdjustment = UIOffsetMake(0、-5.0); } – liamnichols

+0

大変ありがとうございました:) – CroiOS

3

更新Swift用3

このコードを内部に入れますUITabBarController

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

クレジットは、あなたが調整するtabbarItem.titlePositionAdjustmentを使用することができますTim Brown

0

に行きます。

それ以上のことをしたい場合は、tabbaritemサブビューにアクセスし、tabbar.subviewsのラベルを見つけてください。 UITabBarItem *アイテム= [tabBar.items objectAtIndex:0]の例

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++; 
      } 

     } 
    } 


} 
関連する問題