关于UIButton字与图片位置的调整

第一种 自定义按钮

1、自定义一个类(WCButton)继承自UIButton,此种方法适用于app内需要大量的字体在下图片在上的按钮时使用

重写- (CGRect)titleRectForContentRect:(CGRect)contentRect;此方法可以设置按钮的字体位置

- (CGRect)titleRectForContentRect:(CGRect)contentRect{

CGFloat titleX = 0;

CGFloat titleHeight = contentRect.size.height * kTitleRatio;

CGFloat titleY = contentRect.size.height - titleHeight ;

CGFloat titleWidth = contentRect.size.width;

return CGRectMake(titleX, titleY, titleWidth, titleHeight);

}//设置字体在下,kTitleRatio为一个宏值,设置字体从按钮的什么位置开始

重写-(CGRect)imageRectForContentRect:(CGRect)contentRect;此方法可以设置按钮的图片的位置

- (CGRect)imageRectForContentRect:(CGRect)contentRect{

CGFloat imageHeight = contentRect.size.height*(1-kTitleRatio)*3/4;

CGFloat imageY = contentRect.size.height*(1-kTitleRatio)/8;

CGFloat imageWidth = imageHeight;

CGFloat imageX = (contentRect.size.height-imageWidth)/2;

return CGRectMake(imageX, imageY, imageWidth, imageHeight);

}//设置图片在上边

2、自定义一个类(FWCButton)继承自UIButton,此方法适用于app内需要大量的调整按钮的图片与字体的位置时使用

首先定义一个枚举值

typedef NS_ENUM(NSUInteger, MKButtonEdgeInsetsStyle) {

MKButtonEdgeInsetsStyleTop, // image在上,label在下

MKButtonEdgeInsetsStyleLeft, // image在左,label在右

MKButtonEdgeInsetsStyleBottom, // image在下,label在上

MKButtonEdgeInsetsStyleRight // image在右,label在左

};

待补充

第二种方法 不用自定义

1、正常生成按钮,最后只需两句代码设置即可

butn.imageEdgeInsets=UIEdgeInsetsMake(0,8,21,butn.titleLabel.bounds.size.width);通过此方法设置按钮图片位置

butn.titleEdgeInsets=UIEdgeInsetsMake(butn.imageView.bounds.size.width, butn.titleLabel.bounds.size.width-65, 0, 0);通过此方法设置按钮的字体位置

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容