2013-09-27 64 views
2

當我嘗試對齊uibutton文本標籤時出現問題。在ios6上它的中心位置爲 ,但在ios7上它低了約4個像素。iOS 6和iOS 7 UIButton標籤垂直對齊

Button類

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) 
    { 
     [self setBackgroundImage:[UIImage imageNamed:@"circle"] forState:UIControlStateNormal]; 
     [self.titleLabel setFont:[UIFont seBoldUserFontOfSize:13.0]]; 

     _numberLabel = [[IBMSmallDescriptionTextLabel alloc] initWithFrame:CGRectMake(5.5, 0, 18, 18)]; 
     [self addSubview:_numberLabel]; 
    } 
    return self; 
} 

在自定義標題:

- (void)createButtons 
{ 
    for (int i = 0; i <= 5; i++) 
    { 
     IBMStageButton *button = [[IBMStageButton alloc] initWithFrame:CGRectMake(18.0 + (60.0 * i), 1.0, 18.0, 18.0)]; 
     [button.numberLabel setText:[NSString stringWithFormat:@"%d", i+1]]; 
     [self addSubview:button]; // self frame W320 H23 
    } 
} 
+0

我沒有遇到這樣的問題,但(翻譯標籤)。我其實是,但通常是字體問題。在設置插圖之前,確保問題出現在標籤本身中。如果字體是問題,您可以使用字體工具修復它。 – Mercurial

回答

6

我有這個。我使用:

if (iOS_7_or_later) { 
    [button setTitleEdgeInsets:UIEdgeInsetsMake(2, 0, 0, 0)]; 
} 

的iOS_7_or_later只是一個宏我使用:

#define iOS_7_or_later SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0") 

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)