iOS中关于设置UIButton文字和图标对齐格式的问题

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

iPhone UIButton图标与文字间距设置【转】 - 逍遥十四少 - 逍遥十四少

代码解释:

[button setImageEdgeInsets:UIEdgeInsetsMake(<#CGFloat top#向上偏移量>, <#CGFloat left#向左偏移量>, <#CGFloat bottom#向下偏移量>, <#CGFloat right#向右上偏移量>)];
同时还可以设置文字的偏移量:

[button setTitleEdgeInsets:UIEdgeInsetsMake(<#CGFloat top#>, <#CGFloat left#>, <#CGFloat bottom#>, <#CGFloat right#>)];

 iOS开发

原文地址:https://www.cnblogs.com/jaenson/p/3126774.html