在設置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#>)];