iOS 自定义 Button 实现文字图片同时显示,文字在左边图片在右边,并且图片位置随文字多少动态变化
我们在开发应用过程中有时会遇到这样的需求:一个 Button 上同时显示文字和图片,文字在左边图片在右边,并且随文字多少动态变化。我们知道,如果是图片在左边文字在右边,直接往 Button 上添加就可以了,Button 默认是图片在左边文字在右边的,而且会随着文字字数多少,图片位置跟着变化。下面来实现文字在左边图片在右边的效果:
转载请注明出处:https://i.cnblogs.com/EditPosts.aspx?postid=5807467
首先,先自定义一个 CustomButton 继承自 UIButton 在 .m文件中实现下面三个方法
#define kBtnImgWidth 24 //调整button内置label和image的相对位置 - (CGRect)titleRectForContentRect:(CGRect)contentRect { return CGRectMake(0, 0, contentRect.size.width, kBtnImgWidth); } - (CGRect)imageRectForContentRect:(CGRect)contentRect { return CGRectMake(contentRect.size.width-kBtnImgWidth, 0, kBtnImgWidth, kBtnImgWidth); } - (void)setTitle:(NSString *)title forState:(UIControlState)state { [super setTitle:title forState:state]; [self sizeToFit]; }
此时按钮的图片和文字显示就是你想要的结果,而且会随着文字多少变化图片跟着变化,需要注意的是:在设置完 Button 的文字之后,要重新设置Button 的中心点位置。