iOS - 如何在不拉伸背景图像的情况下设置UIButton文本

时间:2014-03-11 19:53:50

标签: ios iphone objective-c uibutton

大家好日子, 我对Objective-C很陌生,但我有一个“大问题”要为你们所做。

我试图在SO上找到解决方案,但无法使我的代码中的任何答案都能正常工作。 我正在创建一个按钮,使用方法(我将在下面提供)插入UITabBar,这需要UITabBarItem并获取其属性来创建按钮 - 是的,代码是'我的,我不会这样做 - 然后它返回创建的按钮。

但是,它使用“固定”大小的图像,例如53px x 45px作为按钮背景的图像,然后,当文本足够大(10个字符的长度足以启动)时,背景图像会被拉伸,这对我们的设计师来说非常不可能。

正如我所说,我尝试过很多事情,比如从setBackgroundImage更改为setImage,使用resizableImageWithCapInsets方法设置背景图片(从不集中图片,尽管停止图像拉伸),甚至是button.imageView.setContentMode

从现在起,先谢谢。希望你能帮帮我。

这是生成按钮的方法:

- (UIButton*)buttonForTabBarItem:(UITabBarItem*)item;
{
    // Create a new button with the right dimensions
    UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.titleLabel.font = [UIFont systemFontOfSize:12];
    button.titleEdgeInsets = UIEdgeInsetsMake(27, 0, 0, 0);

    [button setTitle:item.title forState:UIControlStateNormal];
    [button setBackgroundImage:item.image forState:UIControlStateNormal];
    [button setImageEdgeInsets:item.imageInsets];
    [button setBackgroundColor:[UIColor clearColor]];

    button.enabled = item.enabled;
    button.adjustsImageWhenHighlighted = NO;
    button.titleLabel.textAlignment = UITextAlignmentCenter;

    return button;
}

编辑:背景图片的格式为item.image,标题位于item.title(有点明显,听起来就像你知道的那样)。

0 个答案:

没有答案