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 的中心点位置。

 

posted @ 2016-08-25 16:49  小码哥伍六七  阅读(3031)  评论(0编辑  收藏  举报