在设置UIButton文字和图标对齐方式的时候,需要注意:
setTitleEdgeInsets和setImageEdgeInsets方法只对通过setTitle和setImage方法设置的文字和图片有效。
很多人错将setBackgroundImage当成setImage使用,结果看到了一个图标被作为背景图片拉伸了。之后任怎么设置setImageEdgeInsets都看不到效果。
下面顺便贴出一位哥们写的代码,效果不错!
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 150, 50)];
[button setTitle:@"HHH" forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"narrowend.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"panelicon.png"] forState:UIControlStateNormal];
[button setImageEdgeInsets:UIEdgeInsetsMake(0.0, -20, 0.0, 0.0)];
代码解释:
[button setImageEdgeInsets:UIEdgeInsetsMake(<#CGFloat top#向上偏移量>, <#CGFloat left#向左偏移量>, <#CGFloat bottom#向下偏移量>, <#CGFloat right#向右上偏移量>)];
同时还可以设置文字的偏移量:
[button setTitleEdgeInsets:UIEdgeInsetsMake(<#CGFloat top#>, <#CGFloat left#>, <#CGFloat bottom#>, <#CGFloat right#>)];