UIButton图像居中于文本未对齐某些图像

时间:2012-01-31 22:20:40

标签: ios cocoa-touch ipad uibutton

我正在尝试使用自定义图标和文本来获取一组按钮(UIButton的子类),以符合图标在文本上方居中的图案,并且两者一起在按钮内水平和垂直居中。

    CGSize textSize = [[self titleForState:UIControlStateNormal] sizeWithFont:self.titleLabel.font 
                                                                     forWidth:self.frame.size.width 
                                                                lineBreakMode:UILineBreakModeWordWrap];

    [self setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];
    [self setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
    [self setImageEdgeInsets:UIEdgeInsetsMake(0, 0, textSize.height + 10, 0)];
    [self setTitleEdgeInsets:UIEdgeInsetsMake(self.imageView.frame.size.height + 10, 
                                              -self.imageView.frame.size.width, 
                                              0, 0)];

对于大多数图标/文字组合,这都有效。然而,对于少数人来说,一切都变得不稳定。文本似乎总是保持在中心对齐,但图标往往被推到左边,有时在零(x),有时在零和中心之间。

图标大多数都有不同的尺寸,但都非常适合按钮,并且有足够的空间放置文本。如果我将一个未对齐按钮的文本用于一个很好地对齐的按钮,它将不对齐。如果对齐按钮中的文本带有未对齐按钮的图标,则通常会对齐,但并非总是如此。它似乎是图标大小和文本大小的某种组合,但我看不出它们中的任何一个有什么问题。

是否有更合适的方法来设置这些插图以使其工作?

我一直在调整和玩这个几个小时,我不能为我的生活弄清楚发生了什么。以下是每个按钮的相关框架:

Image: {{24, 35}, {29, 25}}
Title: {{11, 63}, {55, 28}}
inSelf: {{0, 0}, {78, 120}} => Good

Image: {{23, 36}, {32, 23}}
Title: {{5, 62}, {67, 28}}
inSelf: {{0, 0}, {78, 120}} => Good

Image: {{21, 36}, {35, 23}}
Title: {{15, 62}, {48, 28}}
inSelf: {{0, 0}, {78, 120}} => Good

Image: {{6, 35}, {28, 25}}
Title: {{10, 63}, {57, 28}}
inSelf: {{0, 0}, {78, 120}} => Bad

Image: {{0, 38}, {29, 20}}
Title: {{12, 61}, {53, 28}}
inSelf: {{0, 0}, {78, 120}} => Bad

0 个答案:

没有答案