大家好日子, 我对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
(有点明显,听起来就像你知道的那样)。